这是 db.js
const sqlite3 = require('sqlite3').verbose();
const path = require('path')
const { migrationScript } = require('../db/migrations/migrate');
const WDIR = process.cwd();
const DB_PATH = path.join(WDIR, 'db', 'DB.db');
const db = new sqlite3.Database(DB_PATH, (err) => {if (err) { console.log(err);}});
db.run(migrationScript, (err) => {if (err) { console.log(err);}})
db.close()
migrate.js 甚至不重要,因为它只是一个 const 多行字符串,并且会被忽略
无论我输入什么。我也没有得到任何错误。 执行后,它会创建一个 0kb 文件,该文件当然没有任何表,也没有任何内容。 我提到迁移脚本以 pragmaforeign_keys = on 开头,但它似乎根本没有读取它。我尝试使用序列化并在其中执行 db.run ,但这并不重要。 是的,我检查过,migrationScript 对象在 db.js 中不为空。看起来不错
使用
db.exec()
而不是 db.run()
来执行包含多个查询的字符串。
db.exec(migrationScript, (err) => {if (err) { console.log(err);}})