SQLite
Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Установка
- для Better SQLite:
npm install better-sqlite3
- для sql.js:
npm install sql.js
- для Capacitor, Cordova, Expo, NativeScript и React Native смотрите раздел поддерживаемые платформы.
Параметры источника данных
См. Параметры источника данных для общих опций источника данных.
Параметры источника данных 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.