// knexfile.mjs (ESM格式) export default { development: { client: "sqlite3", connection: { filename: "./database/development.sqlite3", }, migrations: { directory: "./src/db/migrations", // 迁移文件目录 // 启用ES模块支持 extension: "mjs", loadExtensions: [".mjs", ".js"], }, seeds: { directory: "./src/db/seeds", // 种子数据目录, // 启用ES模块支持 extension: "mjs", loadExtensions: [".mjs", ".js"], timestampFilenamePrefix: true, }, useNullAsDefault: true, // SQLite需要这一选项 pool: { min: 1, max: 1, // SQLite 建议设为 1,避免并发问题 afterCreate: (conn, done) => { conn.run("PRAGMA journal_mode = WAL", done) // 启用 WAL 模式提高并发 }, }, }, // 生产环境、测试环境配置可按需添加 production: { client: "sqlite3", connection: { filename: "./database/db.sqlite3", }, migrations: { directory: "./src/db/migrations", // 迁移文件目录 // 启用ES模块支持 extension: "mjs", loadExtensions: [".mjs", ".js"], }, seeds: { directory: "./src/db/seeds", // 种子数据目录, // 启用ES模块支持 extension: "mjs", loadExtensions: [".mjs", ".js"], timestampFilenamePrefix: true, }, useNullAsDefault: true, // SQLite需要这一选项 pool: { min: 1, max: 1, // SQLite 建议设为 1,避免并发问题 afterCreate: (conn, done) => { conn.run("PRAGMA journal_mode = WAL", done) // 启用 WAL 模式提高并发 }, }, }, }