cav*_*llo 4 dbmigrate node.js npm
我刚刚将nodejs包db-migrate安装到现有的nodejs项目中.似乎在与DB的连接方面正确配置了所有内容.
Database.json:
{
"development": "postgres://blabla",
"production": "postgres://blabla"
}
Run Code Online (Sandbox Code Playgroud)
移民:
var dbm = global.dbm || require('db-migrate');
var type = dbm.dataType;
exports.up = function(db, callback) {
db.createTable('users', {
id: { type: 'int', primaryKey: true, autoIncrement: true },
username: { type: 'string', unique: true }
}, callback);
};
exports.down = function(db, callback) {
db.dropTable('users', callback);
};
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行时db-migrate up(使用指定数据库文件,迁移,迁移次数等参数的任何变化),该命令每次都会引发错误:
[ERROR] TypeError: Cannot read property '1' of null
at Class.extend.parseName (C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\skeleton.js:162:17)
at Class.Skeleton.extend.init (C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\migration.js:35:24)
at Class.prototype.(anonymous function) [as init] (C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\class.js:36:24)
at new Class (C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\class.js:49:17)
at C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\migration.js:312:14
at Array.map (native)
at C:\Users\test\Projects\nodejs\cirio-crm\node_modules\db-migrate\lib\migration.js:311:35
at FSReqWrap.oncomplete (fs.js:95:15)
Run Code Online (Sandbox Code Playgroud)
我已经尝试重命名表,更改字段,搞乱CRLF行结尾,安装不同版本的nodejs和db-migrate等.
有任何想法吗?
大约一个小时的圈子运行后,我意识到迁移的名称不正确.它的第一部分只指定日期而不是时间.要使用的文件名格式正确yyyyMMddhhmmss-<some text>.
之前(坏): 20160101-testmigration
之后(好): 20160101000000-testmigration
错误本来可以更明确......
编辑:
正如@ 2Toad所指出的那样,必须要小心存储在应该找到迁移的文件夹中的内容.如果您有任何*.js不遵循命名格式的文件,如帮助程序JS文件,则会发生相同的错误.
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |