在 javascript 中运行迁移后,Sqlite3 数据库为空

问题描述 投票:0回答:1

这是 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 中不为空。看起来不错

javascript node.js sqlite node-sqlite3
1个回答
0
投票

使用

db.exec()
而不是
db.run()
来执行包含多个查询的字符串。

db.exec(migrationScript, (err) => {if (err) { console.log(err);}})
© www.soinside.com 2019 - 2024. All rights reserved.