0
点赞
收藏
分享

微信扫一扫

数据库迁移工具-修改表

墨香子儿 2022-05-24 阅读 73

如何修改表

  • 使用 Sequelize-Cli 管理数据库的目的就是为了监控数据库的变化
  • 所以我们不能直接修改表的结构, 如果要修改, 必须通过​​migration​​ 文件修改
  • 这样我们就能记录修改的每一步操作, 就能追踪修改的整个过程, 就能回退到指定版本

修改表步骤

  • 通过​​migration:generate​​ 创建迁移文件

数据库迁移工具-修改表_官网

npx sequelize migration:generate --name cheng-user

数据库迁移工具-修改表_html_02

  • 在迁移文件中的​​up​​ 内部编写修改表结构的内容

进入 sequelize 官网:​​https://sequelize.org/v5/class/lib/query-interface.js~QueryInterface.html​​ 相关所编写的内容都是基于官方文档当中的内容进行编写的:

数据库迁移工具-修改表_官网_03

例如博主现在想要添加一列,该如何进行添加呢,博主在进行查阅官方文档的时候发现有一个方法是叫 ​​addColumn​​ 所以很明确的就可以知道,这是一个添加一列的相关方法,相关参数我相信也不需要我过多的进行一一解释了直接上代码如下:

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
return queryInterface.addColumn('Users', 'age', Sequelize.INTEGER);
},
down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.dropTable('users');
*/
}
};

数据库迁移工具-修改表_html_04

  • 通过​​db:migrate​​ 执行编写好的迁移文件
npx sequelize db:migrate

数据库迁移工具-修改表_html_05

数据库当中的体现如下:

数据库迁移工具-修改表_html_06

如上可以看到我们已经成功的添加了一列 ​​age​​​ 那么如果我需要删除这一列该如何进行删除呢,通过观察官方文档可以发现,有一个 ​​removeColumn​​​ 但是要写在 ​​down​​ 内部:

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
/*
Add altering commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
return queryInterface.addColumn('Users', 'age', Sequelize.INTEGER);
},
down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.

Example:
return queryInterface.dropTable('users');
*/
return queryInterface.removeColumn('Users', 'age');
}
};

数据库迁移工具-修改表_html_07

然后在通过 ​​db:migrate:undo​​ 进行回退(删除)操作即可:

npx sequelize db:migrate:undo

数据库迁移工具-修改表_html_08

数据库当中的体现如下:

数据库迁移工具-修改表_官网_09




举报

相关推荐

0 条评论