Javascript 续集迁移失败(postgres)
我正在尝试使用sequelize将postgresql与我的节点应用程序一起使用。但我不能让它工作。当我运行Javascript 续集迁移失败(postgres),javascript,node.js,orm,database-migration,sequelize.js,Javascript,Node.js,Orm,Database Migration,Sequelize.js,我正在尝试使用sequelize将postgresql与我的节点应用程序一起使用。但我不能让它工作。当我运行sequelize-m时,我得到以下输出: Loaded configuration file "config/config.json". Using environment "development". Running migrations... 20130916100313-create-table-usuarios.js Completed in 21ms events.js:74
sequelize-m
时,我得到以下输出:
Loaded configuration file "config/config.json".
Using environment "development".
Running migrations...
20130916100313-create-table-usuarios.js
Completed in 21ms
events.js:74
throw TypeError('Uncaught, unspecified "error" event.');
^
TypeError: Uncaught, unspecified "error" event.
at TypeError (<anonymous>)
at EventEmitter.emit (events.js:74:15)
at null.<anonymous> (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migrator.js:95:44)
at EventEmitter.emit (events.js:98:17)
at module.exports.finish (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:138:30)
at exec (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:92:16)
at onError (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:72:11)
at EventEmitter.emit (events.js:95:17)
at /home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migration.js:65:19
at null.<anonymous> (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/emitters/custom-event-emitter.js:52:38)
这是20130916100313-create-table-usuarios.js
module.exports = {
up: function(migration, DataTypes, done) {
migration.createTable('Usuario',{
nombre: {
type: DataTypes.STRING,
allowBlank: false,
},
username: {
type: DataTypes.STRING,
unique: true,
},
genero: {
type: DataTypes.ENUM,
values: ['Hombre', 'Mujer']
},
email: {
type: DataTypes.STRING,
unique: true,
allowBlank: false,
},
password_digest: {
type: DataTypes.STRING,
allowBlank: false,
},
remember_token: DataTypes.STRING,
superadministrador: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
token: DataTypes.STRING,
fecha_token: {
type: DataTypes.DATE,
defaultValue: new Date(0)
},
lastLogin: DataTypes.DATE
}).complete(done);
},
down: function(migration, DataTypes, done) {
migration.dropAllTables().complete(done);
}
}
编辑
如果我评论或更改这行代码,我会隔离错误:
genero: {
type: DataTypes.ENUM,
values: ['Hombre', 'Mujer']
},
它工作得很好。枚举类型似乎有问题您的枚举语法不正确。以下是它应该是什么:
type: DataTypes.ENUM('Hombre', 'Mujer')
如果您有更多问题,请查看上的sequelize文档我也有同样的问题。从Postgres源代码中可以看出,在分配给列类型之前,必须单独创建枚举 我不确定sequelize是否支持此操作
来源:请注意,这一点最近似乎有所改变
type: DataTypes.ENUM('Hombre', 'Mujer')