How to update migration files when change column or add new column using Sequelize
我是Sequelize的新手,现在我正在用NodeJS和Sequelize创建一个RESTful api。我试图弄清楚如何更改数据库模式,例如使用Sequelize更改列名
我创建一个这样的模型
它在模型中创建了一个文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
和迁移文件夹中的一个文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 'use strict'; module.exports = { up: function(queryInterface, Sequelize) { return queryInterface.createTable('Pages', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER }, name: { type: Sequelize.STRING }, text: { type: Sequelize.TEXT }, url: { type: Sequelize.STRING }, createdAt: { allowNull: false, type: Sequelize.DATE }, updatedAt: { allowNull: false, type: Sequelize.DATE } }); }, down: function(queryInterface, Sequelize) { return queryInterface.dropTable('Pages'); } }; |
问题是如何添加新列并更改现有的列名
示例我想更改为此
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 'use strict'; module.exports = function(sequelize, DataTypes) { var Page = sequelize.define('Page', { fullname: DataTypes.STRING, text: DataTypes.TEXT, url: DataTypes.STRING, email: DataTypes.STRING }, { classMethods: { associate: function(models) { // associations can be defined here } } }); return Page; }; |
我已经在Stackoverflow中阅读了一些关于此的页面,就像这个页面一样
如何使用Sequelize CLI从Sequelize模型自动生成迁移?
和
Sequelize.js:如何使用迁移和同步
该页面中的一个页面可以在此链接中使用Sequelize-cmd自动更改列的方法https://www.youtube.com/watch?v=wHTBxtk8ezo但Sequelize-cmd已被弃用,另一种方法也是我唯一的方法现在使用
因此,我现在的问题是有一种方法可以自动创建
导航到项目目录后,首先在终端中键入
然后,使用renameColumn方法,该方法接受表名,原始列名和新列名。 将文件更新为以下代码后,请返回到终端并键入
1 2 3 4 5 6 7 8 9 10 11 12 | 'use strict'; module.exports = { up: (queryInterface, Sequelize) => { return queryInterface.renameColumn('Users', 'beforeName', 'afterName'); }, down: (queryInterface, Sequelize) => { return queryInterface.renameColumn('Users', 'afterName', 'beforeName'); } }; |