我使用 Sequelize 的数据库模型不进行迁移
My models for DB using Sequelize don't doing migration
我有两个模型:
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.
并且在我的数据库中不要创建模型
请检查您的数据库,table SequelizeMeta
,并删除与文件迁移对应的名称的记录。 Sequelize 会将日志迁移到这个 table 中,当再次 运行 迁移时,它无法重新 运行 迁移文件。
-这对我有用-
在您的数据库中,请找到名为“SequelizeMeta”的table并删除您要迁移的相关记录。
之后 运行 在您的主机上。
$ npx sequelize-cli db:migrate
这个问题是很久以前的问题了,但在全新的设置中,我正在配置一个脚本 yarn migrate
,代表:sequelize db:migrate:undo:all && sequelize db:migrate && sequelize db:seed:all && node grantsSeeders.js
,grantsSeeders.js 我对 DB
刷新所有迁移成功。
我正在编写用户注册应用程序。但是列没有进入数据库。我使用 sequelize db:migrate:undo:all && sequelize db:migrate
.
解决了这个问题
这个sequelize db:migrate:undo:all
在我的案例中有效
我有两个模型:
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.
并且在我的数据库中不要创建模型
请检查您的数据库,table SequelizeMeta
,并删除与文件迁移对应的名称的记录。 Sequelize 会将日志迁移到这个 table 中,当再次 运行 迁移时,它无法重新 运行 迁移文件。
-这对我有用-
在您的数据库中,请找到名为“SequelizeMeta”的table并删除您要迁移的相关记录。
之后 运行 在您的主机上。
$ npx sequelize-cli db:migrate
这个问题是很久以前的问题了,但在全新的设置中,我正在配置一个脚本 yarn migrate
,代表:sequelize db:migrate:undo:all && sequelize db:migrate && sequelize db:seed:all && node grantsSeeders.js
,grantsSeeders.js 我对 DB
刷新所有迁移成功。
我正在编写用户注册应用程序。但是列没有进入数据库。我使用 sequelize db:migrate:undo:all && sequelize db:migrate
.
这个sequelize db:migrate:undo:all
在我的案例中有效