gpt4 book ai didi

sqlite - Sequelize 迁移不起作用

转载 作者:IT王子 更新时间:2023-10-29 06:27:45 27 4
gpt4 key购买 nike

我创建了一个迁移并运行了它。它说它工作正常,但什么也没发生。我认为它甚至没有连接到我的数据库。

我的迁移文件:

var util = require("util");
module.exports = {
up : function(migration, DataTypes, done) {

migration.createTable('nameOfTheNewTable', {
attr1 : DataTypes.STRING,
attr2 : DataTypes.INTEGER,
attr3 : {
type : DataTypes.BOOLEAN,
defaultValue : false,
allowNull : false
}
}).success(
function() {

migration.describeTable('nameOfTheNewTable').success(
function(attributes) {
util.puts("nameOfTheNewTable Schema: "
+ JSON.stringify(attributes));
done();
});

});
},
down : function(migration, DataTypes, done) {
// logic for reverting the changes
}
};

我的配置.json:

{
"development": {
"username": "user",
"password": "pw",
"database": "my-db",
"dialect" : "sqlite",
"host": "localhost"
}
}

命令:

./node_modules/sequelize/bin/sequelize --migrate --env development
Loaded configuration file "config/config.json".
Using environment "development".
Running migrations...
20130921234513-initial.js
nameOfTheNewTable Schema: {"attr1":{"type":"VARCHAR(255)","allowNull":true,"defaultValue":null},"attr2":{"type":"INTEGER","allowNull":true,"defaultValue":null},"attr3":{"type":"TINYINT(1)","allowNull":false,"defaultValue":false}}
Completed in 8ms

我可以一遍又一遍地运行它,输出总是一样的。我已经在我知道有现有表的数据库上尝试过,并尝试描述这些表,但仍然没有任何反应。

我做错了什么吗?

编辑:

我很确定我没有连接到数据库,但我可能会尝试使用迁移无法连接。我可以使用 sqlite3 my-db.sqlite 连接并运行诸如 .tables 之类的命令来查看我之前创建的表,但我终生无法获得“使用迁移创建的 nameOfTheNewTable"表。 (我也想在迁移中创建索引)。我尝试过使用“开发”,更改config.json 中的值,例如主机、数据库(my-db、../my-db、my-db。 sqlite)等

这是一个很好的例子,在 config.json 中我输入了 "database": "bad-db" 并且迁移的输出完全相同。完成后,将找不到 bad-db.sqlite 文件。

最佳答案

您需要在 config.json 中指定 'storage' 参数,以便 sequelize 知道将哪个文件用作 sqlite 数据库。

Sequelize 默认为 sqlite 使用内存存储,因此它正在迁移一个内存数据库,然后退出,有效地破坏了它刚刚迁移的数据库。

关于sqlite - Sequelize 迁移不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com