我正在寻找从 github 拉取以来应用程序中已有的模型创建迁移和创建数据库的方法。我正在使用 AWS,因此需要在应用程序构建上运行迁移构建命令并将其与 AWS RDS 连接。到目前为止我所做的 - 使用以下内容创建了 .sequelizerc
const path = require('path');
module.exports = {
'config': path.resolve('lib', './app.database.js'),
'models-path': path.resolve('lib', './models'),
'seeders-path': path.resolve('lib', './seeders'),
'migrations-path': path.resolve('lib', './migrations')
}
并将所有模型存储在 /lib/models/
文件夹中,例如具有以下结构
module.exports = (sequelize, DataTypes) => {
const Init = sequelize.define('Init', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: DataTypes.STRING,
version: DataTypes.STRING,
}, {
tableName: 'oc_init',
timestamps: false
});
return Init;
};
需要提到的是,一些模型本身已经有了原型(prototype),并且正在使用其他库,例如 bcrypt 等。
因此,在应用程序构建之后,我尝试运行 node_modules/.bin/sequelize db:migrate
并出现以下错误
No migrations were executed, database schema was already up to date.
但是当我检查远程数据库(亚马逊 RDS)时,我只能看到创建的 SequelizeMeta
表。我做错了什么?如何在本地计算机上创建迁移以便可以在 AWS 上迁移数据?
最佳答案
解决方案是我自己为每个模型创建迁移,描述其内容并运行 sequelize db:migrate
。似乎没有方法可以从已创建的模型创建迁移文件。
关于node.js - 创建模型后 Sequelize 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51083805/