Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 续集迁移失败(postgres)_Javascript_Node.js_Orm_Database Migration_Sequelize.js - Fatal编程技术网

Javascript 续集迁移失败(postgres)

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将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
        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')