数据库迁移工具

数据库迁移工具数据库迁移工具 创建数据库一 数据库迁移工具 使用 1 什么是 Sequelize CLI 2 如何使用 Sequelize CLI 二 数据库迁移工具 创建表 1 创建模型 2 根据模型创建表 3 回退到某个时刻三 数据库迁移工具 修改表 1 如何修改表 2 修改表步骤 3 实例 给 User 表添加 age 字段并删除 四 数据库迁移工具 种子文件 0 什么是种子文件 1 创建种子文件 2 执行种子文件 3 记录种子文件操作记录 4 回退到某个时刻一 数据库迁移工具 使用 1 什么是 Sequelize CLI 在编程开发中为了能

一、数据库迁移工具-使用

1.什么是Sequelize-CLI?

  • 在编程开发中为了能够更好的管理代码, 我们可以使用Git来管理我们的代码,
    实现对代码变更的追踪, 实现在各个不同版本之间切换

  • 在数据库开发中为了能够更好的管理数据库, 我们也可以使用数据库迁移工具来管理我们的数据库,
    实现对数据库变更的追踪, 实现在各个不同版本之间切换

  • Sequelize-CLI就是一款数据库迁移工具, 能够让我们追踪数据库的变更, 在各个不同版本之间随意切换

2.如何使用Sequelize-CLI?

2.1) 安装sequelize-cli。

npm i sequelize sequelize-cli mysql2 -s 

需要提前安装mysql2,sequelize。因为sequelize-cli依赖于sequelize,sequelize依赖于mysql2。

2.2) 查看常用指令

npx sequelize-cli 

2.2) 初始化Sequelize-CLI

npx sequelize-cli init 
  • config: 数据库配置文件, 用于告诉CLI如何连接数据库。

在项目开发的不同阶段,根据不同配置创建不同数据库。因为项目开发的时候不会操作上线之后的服务器,因为访问外网效率慢,并且直接操作服务器有潜在的风险。

  • models: 数据库模型文件, 用于告诉CLI如何创建表
  • migrations[迁移]: 数据库迁移文件, 用于记录数据库不同版本变更
  • seeders: 数据库种子文件, 用于编写测试数据

2.3) 链接数据库,说明当前是什么阶段[根据config文件中的配置项]

set NODE_ENV=development 

2.4) 根据config配置创建数据库

npx sequelize db:create 

二、数据库迁移工具-创建表

1.创建模型

npx sequelize model:generate –name xxx –attributes key:type

生成对应的模型文件和迁移文件

  • name:指定表的名称
  • attributes:指定表的字段
npx sequelize model:generate --name User --attributes name:STRING 

2.根据模型创建表

npx sequelize db:migrate 

再另外创建一个Book的表:

npx sequelize model:generate --name Book --attributes name:STRING npx sequelize db:migrate 

3.回退到某个时刻

三、数据库迁移工具-修改表

https://sequelize.org/master/class/lib/dialects/abstract/query-interface.js~QueryInterface.html

1.如何修改表?

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

2.修改表步骤

  • 2.1 通过 migration:generate 创建迁移文件
  • 2.2 在迁移文件中编写修改的内容
  • 2.3 通过 db:migrate 执行编写好的迁移文件

3.实例:给User表添加age字段并删除:

1.创建迁移文件

npx sequelize migration:generate --name change-user 
  • up:执行迁移文件时执行
  • down:撤销操作时执行

2.app.js文件中编写修改执行代码

 return queryInterface.addColumn('User', 'age', { type: Sequelize.INTEGER }) 

3.执行编写好的迁移文件

npx sequelize db:migrate 

4.app.js文件中编写删除字段代码

return queryInterface.removeColumn('Users', 'age') 

5.执行回退,用以删除

npx sequelize db:migrate:undo 

四、数据库迁移工具-种子文件

0.什么是种子文件?

  • Sequelize-CLI中的种子文件是专门用于编写测试数据的
  • 在Sequelize-CLI中不同的阶段[开发、测试、上线数据库]会根据config.json配置文件创建不同的数据库。但是刚创建出来的数据库是没有数据的, 所以为了方便我们在不同的阶段演示和调试。可以在种子文件中提前编写测试数据, 以便于我们在不同的阶段中使用

1.创建种子文件

npx sequelize seed:generate –name xxx

npx sequelize seed:generate --name user 

执行结果:在seeders文件夹中生成了一个日期-name.js的文件夹

  • 其中up方法:向指定列表中插入数据
     up: async (queryInterface, Sequelize) => { /* bulkInsert:指定表中插入指定数据 * */ await queryInterface.bulkInsert('Users', [{ name: 'John Doe', }, { name: 'John gege', }, { name: 'John ww', }], {}); }, 
  • 其中down方法:向指定列表中撤销数据

2.执行种子文件

npx sequelize db:seed –seed=[fileName, …]; // 执行指定文件

npx sequelize db:seed:all // 执行所有种子文件

npx sequelize db:seed --seed 337-user.js 

注意点:默认情况下,指定种子文件【https://sequelize.org/master/manual/migrations.html#seed-storage】的操作不会在数据库中像迁移文件【https://sequelize.org/master/manual/migrations.html#migration-storage】一样被保存

3.记录种子文件操作记录

在配置文件【config.json】中。将想要保存种子文件的某个阶段添加seederStorage属性

"seederStorage": "sequelize" // 将种子文件操作记录到数据库中 

注意点:修改了配置文件,应该重新创建数据库和表

npx sequelize db:create // 重新创建数据库 npx sequelize db:migrate // 重新创建表 npx sequelize db:seed --seed 337-user.js // 执行种子文件 

4.回退到某个时刻

 npx sequelize seed:generate --name book // 1.创建种子文件 // 2.打开seeders文件夹中的种子文件731-book.js,up方法中编写插入数据的代码 npx sequelize db:seed --seed 731-book.js // 3.执行种子文件 // 4.打开seeders文件夹中的种子文件731-book.js,down方法中编写删除数据的代码 npx sequelize db:seed:undo --seed 731-book.js // 5.撤销执行过的种子文件 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178437.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:18
下一篇 2026年3月26日 下午5:18


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号