sequelize模型种子迁移
时间: 2025-06-10 08:29:09 浏览: 24
### 使用 Sequelize 进行模型定义、种子数据生成和数据库迁移
#### 模型定义
通过 `node_modules/.bin/sequelize` 命令可以创建一个新的 Sequelize 模型。例如,可以通过以下命令来创建名为 `Recipe` 的模型,并为其指定字段及其类型:
```bash
node_modules/.bin/sequelize model:generate --name Recipe --attributes title:string,ingredients:text,directions:text
```
此命令会自动生成一个模型文件到项目的 `models` 文件夹中[^1]。该模型文件包含了所定义的字段(如 `title`, `ingredients`, 和 `directions`),并将其映射为数据库中的表结构。
#### 配置文件说明
项目目录下的配置文件通常位于 `config/config.json` 或类似的路径下,用于告诉 Sequelize 如何连接到数据库。此外,在 Sequelize 项目中,有以下几个重要部分需要注意:
- **Config**: 存储了数据库连接的相关配置。
- **Models**: 所有的模型都存储在此处,同时有一个 `index.js` 文件负责集成所有的模型。
- **Migrations**: 此文件夹保存了所有迁移脚本,这些脚本描述了如何更改数据库模式。
- **Seeders**: 种子文件存放于此,它们用来填充初始数据到数据库中[^2]。
#### 数据库迁移
为了执行数据库迁移,首先需要编写迁移文件。这可以通过运行如下命令实现:
```bash
node_modules/.bin/sequelize migration:generate --name create-recipes-table
```
上述命令会在 `migrations` 文件夹中生成新的迁移文件。编辑这个文件以添加所需的 SQL 表操作逻辑。完成修改后,可通过下面的命令应用迁移至实际数据库:
```bash
node_modules/.bin/sequelize db:migrate
```
如果需要回滚最近的一次迁移,则可使用以下命令:
```bash
node_modules/.bin/sequelize db:migrate:undo
```
#### 种子数据生成
要生成种子数据,先创建一个新的 Seeder 脚本:
```bash
node_modules/.bin/sequelize seed:generate --name recipe-seed-data
```
随后打开新生成的 Seeder 文件,按照需求填写初始化的数据条目。最后利用以下命令将种子数据插入到数据库中:
```bash
node_modules/.bin/sequelize db:seed:all
```
对于撤销已播种的数据,可以采用以下方法逐一撤消或全部清除:
```bash
node_modules/.bin/sequelize db:seed:undo:last
node_modules/.bin/sequelize db:seed:undo:all
```
#### 注意事项
确保应用程序已经正确配置好使用的数据库环境,比如 MySQL 数据库设置等[^3]。
### 示例代码片段
以下是简单的模型定义示例代码:
```javascript
'use strict';
const { DataTypes } = require('sequelize');
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Recipes', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
title: {
type: DataTypes.STRING,
allowNull: false
},
ingredients: {
type: DataTypes.TEXT,
allowNull: false
},
directions: {
type: DataTypes.TEXT,
allowNull: false
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Recipes');
}
};
```
阅读全文
相关推荐


















