Turso

Turso - база данных, основанная на libSQL - форке SQLite с открытым исходным кодом.

Она позволяет вам разместить ваши данные рядом с пользователями в более, чем 35 точках по всему миру.

Использование

Вы можете легко добавить Turso, используя следующий стартовый шаблон Qwik:

npm run qwik add turso

Эта команда добавит необходимые зависимости для использования Turso.

Он также добавляет новые файлы в папку проекта:

  • src/lib/turso.ts

и добавляет или изменяет файл .env.local для включения в него

.env.local
PRIVATE_TURSO_DB_URL=
PRIVATE_TURSO_DB_AUTH_TOKEN=

Использование файловых баз данных

Для локальной разработки и CI-интеграции идеальным вариантом является использование локальных файлов баз данных.

Прежде всего, проверьте, установлен ли SQLite на вашей машине, выполнив команду sqlite3 --version. Если вы получите что-либо, отличное от номера версии (например, 0-14 20:58:05 554764a6e721fab307c63a4f98cd958c8428a5d9d8edfde951858d6fd02daapl), посетите эту ссылку для получения инструкции по установке.

Приступите к созданию файловой базы данных SQLite, выполнив следующую команду:

sqlite3 foo.db

Создайте схему базы данных:

sqlite> create table todo (id integer not null, task text, done int default 0);

Поместите в таблицу некоторые данные:

sqlite> insert into todo(id, task) values(1, "Go to the gym");
sqlite> insert into todo(id, task) values(2, "Buy groceries");

Выход из оболочки - .quit

Затем присвойте путь к файлу базы данных переменной окружения PRIVATE_TURSO_DB_URL внутри .env.local.

PRIVATE_TURSO_DB_URL=file:foo.db

Примечание: При работе с файловыми базами данных токен базы данных не требуется.

Использование базы данных Turso

Когда вы захотите развернуть свой проект в производственной среде, вы можете установить Turso CLI на свою машину и создать базу данных Turso.

Для выполнения запросов к базе данных в Turso CLI используется команда db shell.

turso db shell <database-name>

Создайте схему базы данных:

  create table todo (id integer not null, task text, done int default 0);

Вставьте в таблицу какие-нибудь данные:

  insert into todo(id, task) values(1, "Go to the gym");
  insert into todo(id, task) values(2, "Buy groceries");

Выход из оболочки - .quit.

С помощью следующих инструкций можно получить учётные данные базы данных Turso и присвоить их переменным окружения в среде развёртывания.

Начнём с url базы данных, выполните следующую команду:

turso db show <database-name> --url

Скопируйте полученный URL и присвойте его переменной окружения PRIVATE_TURSO_DB_URL.

А для получения токена аутентификации базы данных выполните команду:

turso db tokens create <database-name>

Скопируйте полученный токен и присвойте его переменной окружения PRIVATE_TURSO_DB_AUTH_TOKEN.

Как использовать Turso в Qwik

Импортируйте tursoClient в свои маршруты и инициируйте экземпляр клиента базы данных в серверных API Qwik, которые открывают объект RequestEvent, например routeLoader$(), routeAction$(), server$() и обработчики конечных точек, такие как onGet, onPost, onRequest.

import { tursoClient } from "~/utils/turso";
 
export const useRouteLoader = routeLoader$(
  async (requestEvent: RequestEventBase) => {
    const client = tursoClient(requestEvent);
 
    const items = await client.execute("select * from table");
 
    return {
      items: items.rows,
    };
  }
);

Более подробную информацию можно найти на сайте Turso docs.

Участники

Спасибо всем участникам, которые помогли сделать эту документацию лучше!

  • xinnks