0
点赞
收藏
分享

微信扫一扫

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

颜路在路上 2022-05-24 阅读 55

种子文件概述

  • ​Sequelize-Cli​​ 中的种子文件是专门用于编写测试数据的
  • 我们知道在​​Sequelize-Cli​​ 中不同的阶段会创建不同的数据库
  • 但是刚创建出来的数据库是没有数据的, 所以为了方便我们在不同的阶段演示和调试
  • 我们可以在种子文件中提前编写测试数据, 以便于我们在不同的阶段中使用

创建种子文件

npx sequelize seed:generate --name xxx

数据库迁移工具-种子文件_操作表

编写内容如下:

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.bulkInsert('Users', [
{
name: 'John Doe',
createdAt: new Date(),
updatedAt: new Date(),
},
{
name: 'BNTang',
createdAt: new Date(),
updatedAt: new Date(),
},
{
name: 'Jonathan_Lee',
createdAt: new Date(),
updatedAt: new Date(),
},
], {});
},
down: (queryInterface, Sequelize) => {
}
};

执行种子文件

执行指定文件:

npx sequelize db:seed --seed=[fileName, ...]

数据库迁移工具-种子文件_操作表_02

数据库当中的体现如下:

数据库迁移工具-种子文件_数据库_03

执行所有种子文件:

npx sequelize db:seed:all

数据库迁移工具-种子文件_数据库_04

注意点:执行种子文件是不会保存到 sequelize 的操作表当中进行保存的,如果你想要你执行的种子文件操作保存到 sequelize 的操作表当中的话还需要进行额外的配置才可以实现,官方文档地址:​​https://sequelize.org/v5/manual/migrations.html#seed-storage​​

数据库迁移工具-种子文件_操作表_05

记录种子文件操作记录

数据库迁移工具-种子文件_数据库_06

在 Navicat 当中将之前创建好的数据库删除,然后在重新进行创建如下:

npx sequelize db:create
npx sequelize db:migrate

再次执行种子文件:

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.bulkInsert('Users', [
{
name: 'John Doe',
createdAt: new Date(),
updatedAt: new Date(),
age: 18
},
{
name: 'BNTang',
createdAt: new Date(),
updatedAt: new Date(),
age: 18
},
{
name: 'Jonathan_Lee',
createdAt: new Date(),
updatedAt: new Date(),
age: 18
},
], {});
},
down: (queryInterface, Sequelize) => {
}
};
npx sequelize db:seed --seed=20220201104452-user.js

数据库当中的体现如下:

数据库迁移工具-种子文件_文件操作_07

回退到某个时刻

回退到指定种子操作:

npx sequelize db:seed:undo --seed=[fileName, ...]

修改种子文件,编写当中的 ​​down​​​ 方法当中的内容进行回退操作,其实回退就是执行 ​​down​​ 当中的操作内容:

return queryInterface.bulkDelete('Users', null, {});

数据库迁移工具-种子文件_数据库_08

npx sequelize db:seed:undo --seed=20220201104452-user.js

数据库迁移工具-种子文件_数据库_09

npx sequelize db:seed:undo:all

回退所有:

数据库迁移工具-种子文件_数据库_10




举报

相关推荐

0 条评论