跳至主内容区

SQLite

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

安装

  • 适用于 Better SQLite
npm install better-sqlite3
  • 适用于 sql.js
npm install sql.js
  • 对于 CapacitorCordovaExpoNativeScriptReact Native,请查阅支持的平台

数据源选项

通用数据源选项请参见数据源选项

better-sqlite3 数据源选项

  • database - 数据库路径。例如:"mydb.sqlite"

  • enableWAL - 启用 WAL 模式(默认为 false)。详见 SQLite WAL 模式

  • fileMustExist - 若数据库不存在则抛出错误(而非创建新文件),不影响内存或只读连接(默认为 false)。

  • key - SQLCipher 加密密钥。

  • nativeBinding - 原生插件 (better_sqlite3.node) 的相对/绝对路径。

  • prepareDatabase - 在 typeorm 使用数据库前执行的函数。可在此访问原始的 better-sqlite3 Database 对象。

  • readonly - 以只读模式打开数据库连接(默认为 false)。

  • statementCacheSize - SQLite 语句缓存大小(用于加速查询,默认为 100)。

  • timeout - 在锁定的数据库上执行查询时的等待毫秒数(超时抛出 SQLITE_BUSY 错误,默认为 5000)。

  • verbose - 数据库连接执行每条 SQL 语句时触发的回调函数。

sql.js 数据源选项

  • database:待导入的原始 UInt8Array 格式数据库。

  • sqlJsConfig:可选的 sql.js 初始化配置。

  • autoSave:启用数据库变更的自动持久化,需配置 locationautoSaveCallback。设为 true 时,每次变更将保存至文件系统(Node.js)或 localStorage/indexedDB(浏览器,当指定了 location),否则会调用 autoSaveCallback

  • autoSaveCallback:当数据库发生变更且启用了 autoSave 时触发的函数。该函数接收代表数据库的 UInt8Array 参数。

  • location:加载和保存数据库的文件位置。

  • useLocalForage:启用 localforage 库,通过 indexedDB 异步保存/加载数据库(替代浏览器环境中的同步本地存储方法)。需在项目中添加 localforage node 模块,并在页面中导入 localforage.js。

capacitor 数据源选项

  • database - 数据库名称(capacitor-sqlite 会自动添加后缀 SQLite.db

  • driver - capacitor-sqlite 实例。例如:new SQLiteConnection(CapacitorSQLite)

  • mode - 数据库加密模式:"no-encryption" | "encryption" | "secret" | "newsecret"

  • version - 数据库版本

  • journalMode - SQLite 日志模式(可选)

cordova 数据源选项

expo 数据源选项

  • database - 数据库名称。例如:"mydb"。

  • driver - Expo SQLite 模块。例如:require('expo-sqlite')

nativescript 数据源选项

  • database - 数据库名称

react-native 数据源选项

列类型

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 在 SQLite 中同时支持 jsonjsonb 类型:

  • json 存储为 TEXT

  • jsonb 存储为 SQLite 的二进制 JSON 格式。TypeORM 在持久化时自动使用 jsonb() 函数包装值,在检索时使用 json() 函数,以提供透明支持并提升性能

JSONB 支持要求 SQLite 版本为 3.45.0 或更高。当使用 jsonb 列类型时,TypeORM 会在数据库架构中使用 jsonb 类型,SQLite 内部将其作为二进制 BLOB 处理