Перейти к основному содержанию

SQLite

Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Установка

  • для Better SQLite:
npm install better-sqlite3
  • для sql.js:
npm install sql.js

Параметры источника данных

См. Параметры источника данных для общих опций источника данных.

Параметры источника данных better-sqlite3

  • database - Путь к файлу базы данных. Например, "mydb.sqlite".

  • enableWAL - Включает режим WAL (Write-Ahead Logging, по умолчанию false). См. Режим WAL в SQLite.

  • fileMustExist - Если база данных не существует, будет выброшена ошибка вместо создания нового файла (по умолчанию false). Не влияет на in-memory базы и режим только для чтения.

  • key - Ключ шифрования для SQLCipher.

  • nativeBinding - Относительный или абсолютный путь к нативному дополнению (better_sqlite3.node).

  • prepareDatabase - Функция, выполняемая перед использованием базы данных в TypeORM. Здесь доступен оригинальный объект Database из better-sqlite3.

  • readonly - Открывает соединение с базой данных в режиме только для чтения (по умолчанию false).

  • statementCacheSize - Размер кэша SQLite-запросов для ускорения выполнения (по умолчанию 100).

  • timeout - Время ожидания (в миллисекундах) при выполнении запросов к заблокированной базе данных перед выбросом ошибки SQLITE_BUSY (по умолчанию 5000).

  • verbose - Функция, вызываемая для каждого выполненного SQL-запроса в соединении с базой данных.

Параметры источника данных sql.js

  • database: Сырой массив UInt8Array с базой данных для импорта.

  • sqlJsConfig: Дополнительная конфигурация инициализации для sql.js.

  • autoSave: Включает автоматическое сохранение изменений базы данных. Требует указания location или autoSaveCallback. При значении true каждое изменение сохраняется в файловую систему (Node.js) или в localStorage/indexedDB (браузер), если указан location, иначе вызывается autoSaveCallback.

  • autoSaveCallback: Функция, вызываемая при изменениях в базе данных при включённом autoSave. Получает UInt8Array, представляющий базу данных.

  • location: Расположение файла для загрузки и сохранения базы данных.

  • useLocalForage: Включает использование библиотеки localforage для асинхронного сохранения/загрузки базы данных из indexedDB вместо синхронных методов localStorage в браузере. Требует подключения модуля localforage и импорта localforage.js на страницу.

Параметры источника данных capacitor

  • database - Имя базы данных (capacitor-sqlite добавит суффикс SQLite.db)

  • driver - Экземпляр capacitor-sqlite. Например, new SQLiteConnection(CapacitorSQLite).

  • mode - Режим шифрования базы данных: "no-encryption" | "encryption" | "secret" | "newsecret"

  • version - Версия базы данных

  • journalMode - Режим журналирования SQLite (опционально)

Параметры источника данных cordova

  • database - Имя базы данных

  • location - Расположение для сохранения базы данных. Смотрите cordova-sqlite-storage для опций.

Параметры источника данных expo

  • database - Имя базы данных. Например, "mydb".

  • driver - Модуль Expo SQLite. Например, require('expo-sqlite').

Параметры источника данных nativescript

  • database - Имя базы данных

Параметры источника данных react-native

  • database - Имя базы данных

  • location - Расположение для сохранения базы данных. Смотрите react-native-sqlite-storage для опций.

Типы столбцов

int, int2, int8, integer, tinyint, smallint, mediumint, bigint, decimal, numeric, float, double, real, double precision, datetime, varying character, character, native character, varchar, nchar, nvarchar2, unsigned big int, boolean, blob, text, clob, date, json, jsonb

TypeORM поддерживает оба типа json и jsonb в SQLite:

  • json хранится как TEXT.

  • jsonb хранится в бинарном формате JSON SQLite. TypeORM автоматически оборачивает значения функцией jsonb() при сохранении и функцией json() при извлечении для прозрачной поддержки и улучшенной производительности.

Поддержка JSONB требует SQLite версии 3.45.0 или новее. При использовании типа столбца jsonb, TypeORM будет применять тип jsonb в схеме базы данных, который SQLite внутренне обрабатывает как бинарный BLOB.