SQLite
ShipAny 支持 SQLite 数据库。按照以下步骤快速开始。
快速开始
安装 SQLite
根据你的操作系统类型,自行搜索安装 SQLite,安装完成后,通过命令行创建数据库文件:
sqlite3 data/local.db你也可以跳过这一步,在项目中配置 SQLite 后,执行数据表迁移命令时,会自动创建数据库文件。
配置数据库
在项目的环境变量文件中,填入 SQLite 数据库相关的配置。
- 本地开发环境变量文件
.env.development - 生产环境变量文件
.env.production
DATABASE_PROVIDER = "sqlite"
DATABASE_URL = "file:data/local.db"
DB_SCHEMA_FILE = "./src/config/db/schema.sqlite.ts"
DB_MIGRATIONS_OUT = "./src/config/db/migrations_sqlite"- DATABASE_PROVIDER,必填,固定值
sqlite - DATABASE_URL,必填,填 SQLite 数据库的文件路径。格式为
file:file-path,file:前缀是固定值,file-path可以自定义,用相对目录指定项目中任意路径,建议使用.db/.sqlite后缀。 - DB_SCHEMA_FILE,必填,固定值
./src/config/db/schema.sqlite.ts - DB_MIGRATIONS_OUT,选填,数据库迁移文件输出路径,默认值
./src/config/db/migrations,可以根据数据库类型选择不同的输出路径
修改数据库 Schema 文件
使用 SQLite 数据库时,数据表结构定义在 ./src/config/db/schema.sqlite.ts 文件中,你需要导出这个文件的数据表。
打开 ./src/config/db/schema.ts 文件,修改内容为:
export * from './schema.sqlite';迁移数据表
执行以下命令,迁移数据表
pnpm db:generate
pnpm db:migrate管理数据库
在本地执行命令:
pnpm db:studio打开数据库管理面板。
自定义
修改数据表
如果你需要新增数据表,或者修改数据表字段,可以打开 ./src/config/db/schema.sqlite.ts 文件,修改数据表结构。
修改完成后,执行以下命令,迁移数据表
pnpm db:generate
pnpm db:migrate修改数据库连接
如果你需要修改数据表连接参数,比如配置自定义选项、连接池等,可以修改 ./src/core/db/sqlite.ts 文件中的逻辑。
在进行数据操作时,默认使用的是 ./src/core/db/index.ts 导出的 db() 对象,导出类型是 any,在某些情况下,可能会缺乏类型提示。
import { db } from '@/core/db';
import { user } from '@/config/db/schema';
const [result] = await db().select().from(user).limit(1);如果你希望使用强类型的数据库对象,可以在操作数据时,使用以下方式获取数据库对象:
import { dbSqlite } from '@/core/db';
import { user } from '@/config/db/schema';
const [result] = await dbSqlite().select().from(user).limit(1);或者:
import { getSqliteDb } from '@/core/db/sqlite';
import { user } from '@/config/db/schema';
const [result] = await getSqliteDb().select().from(user).limit(1);部署到 Cloudflare Workers
使用 Cloudflare Workers 部署项目时,暂不支持使用 SQLite 数据库。
你可以使用 Turso 等兼容 SQLite 的数据库服务。