续集迁移不起作用

Jes*_*ess 5 sqlite sequelize.js

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

我的迁移文件:

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
}
};
Run Code Online (Sandbox Code Playgroud)

我的Config.json:

{
  "development": {
    "username": "user",
    "password": "pw",
    "database": "my-db",
    "dialect" : "sqlite",
    "host": "localhost"
  }
}
Run Code Online (Sandbox Code Playgroud)

命令:

./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
Run Code Online (Sandbox Code Playgroud)

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

难道我做错了什么?

编辑:

我很确定我没有连接到数据库,但尝试我可能无法使用迁移进行连接.我可以连接使用sqlite3 my-db.sqlite和运行命令,例如.tables查看我之前创建的表,但我不能在我的生活中获得使用迁移创建的"nameOfTheNewTable"表.(我也希望在迁移中创建索引).我尝试过使用"开发",改变config.json主机,数据库(my-db,../my-db,my-db.sqlite)等的值.

这是一个很好的例子,在config.jsonI put "database" : "bad-db"和迁移的输出完全相同.完成后,找不到bad-db.sqlite文件.

Ell*_*ter 9

您需要在config.json中指定'storage'参数,以便sequelize知道要用作sqlite DB的文件.

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