【问题标题】:My models for DB using Sequelize don't doing migration我使用 Sequelize 的 DB 模型不进行迁移
【发布时间】:2017-01-30 00:00:05
【问题描述】:

我有两个模型:

user.js

'use strict'
module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define('User', {
    gid: {
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    email: {
      type: DataTypes.STRING,
      allowNull: false
    },
    password: {
      type: DataTypes.STRING,
      allowNull: false
    },
    newsletters: {
      type: 'NUMERIC',
      allowNull: false,
      defaultValue: '1'
    },
    status: {
      type: 'NUMERIC',
      allowNull: false,
      defaultValue: '1'
    },
    date_verified: {
      type: DataTypes.TIME,
      allowNull: true
    },
    date_created: {
      type: DataTypes.TIME,
      allowNull: false,
      defaultValue: sequelize.fn('now')
    },
    date_updated: {
      type: DataTypes.TIME,
      allowNull: false,
      defaultValue: sequelize.fn('now')
    }
  },{
    tableName: 'user'
  },{
    classMethods:{
      associate: function(models){
        User.belongsTo(models.User);
      }
    }
  });

  User.schema("security");

  return User;
};

role.js

'use strict'
module.exports = function(sequelize, DataTypes) {
  var Role = sequelize.define('Role', {
    gid: {
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    name: {
      type: DataTypes.STRING,
      allowNull: false
    },
    status: {
      type: 'NUMERIC',
      allowNull: false,
      defaultValue: '1'
    },
    date_created: {
      type: DataTypes.TIME,
      allowNull: false,
      defaultValue: sequelize.fn('now')
    },
    date_updated: {
      type: DataTypes.TIME,
      allowNull: false,
      defaultValue: sequelize.fn('now')
    }
  },{
    tableName: 'role'
  },{
    classMethods:{
      associate: function(models){
        Role.hasMany(models.User);
      }
    }
  });

  Role.schema("security");

  return Role;
};

和 index.js 在同一个 "models" 文件夹中,它是为 Sequelize 自动生成的。

我只用我的连接变量更改了config.json,并成功连接。

但是,当我放入控制台时

node_modules/.bin/sequelize db:migrate

给我看这个:

Sequelize [Node: 4.4.4, CLI: 2.1.0, ORM: 3.12.2, pg: ^4.4.3]

Loaded configuration file "config\config.json".
Using environment "development".
Using gulpfile c:\Users\Ulises\MVO-app\server\node_modules\sequelize-cli\lib\gulpfile.js
Starting 'db:migrate'...
Finished 'db:migrate' after 180 ms
No migrations were executed, database schema was already up to date. 

在我的数据库中不要创建模型

【问题讨论】:

    标签: node.js postgresql sequelize.js sequelize-cli


    【解决方案1】:

    -这对我有用-

    请在您的数据库中找到名为“SequelizeMeta”的表并删除您要迁移的相关记录。

    然后在你的控制台上运行它。

    $ npx sequelize-cli db:migrate
    

    【讨论】:

      【解决方案2】:

      请检查您的数据库,表SequelizeMeta,并删除与文件迁移对应的名称的记录。 Sequelize 会将迁移记录到该表中,再次运行迁移时,无法重新运行迁移文件。

      【讨论】:

        【解决方案3】:

        这个问题是很久以前的问题了,但在一个全新的设置中,我正在配置一个脚本 yarn migrate,它代表:sequelize db:migrate:undo:all && sequelize db:migrate && sequelize db:seed:all && node grantsSeeders.js,是我对 DB 的授权,是 grantsSeeders.js

        成功刷新所有迁移。

        【讨论】:

          【解决方案4】:

          我正在编写用户注册应用程序。但列没有进入数据库。我使用sequelize db:migrate:undo:all && sequelize db:migrate 解决了这个问题。

          【讨论】:

            【解决方案5】:

            这个sequelize db:migrate:undo:all 对我有用

            【讨论】:

              猜你喜欢
              • 2020-11-09
              • 2015-10-12
              • 2016-07-18
              • 2020-02-16
              • 2020-03-10
              • 2019-05-31
              • 2021-09-19
              • 1970-01-01
              • 2015-03-06
              相关资源
              最近更新 更多