介绍
在 Express.js 的开发中,数据库迁移是一个非常重要的任务。它可以帮助我们在不影响现有数据的情况下更新数据库结构。Sequelize 是一个强大的 ORM 框架,它提供了许多有用的工具来帮助我们进行数据库迁移。在本文中,我们将介绍如何在 Express.js 中使用 Sequelize 进行数据库迁移的最佳实践。
准备工作
在开始使用 Sequelize 进行数据库迁移之前,我们需要完成一些准备工作。
首先,我们需要安装 Sequelize 和相关的依赖。打开终端并输入以下命令:
npm install sequelize sequelize-cli mysql2
这将安装 Sequelize、Sequelize CLI 和 MySQL2。
接下来,我们需要配置 Sequelize。在项目的根目录下创建一个名为 .sequelizerc
的文件,并输入以下内容:
const path = require('path'); module.exports = { 'config': path.resolve('config', 'database.json'), 'models-path': path.resolve('models'), 'seeders-path': path.resolve('seeders'), 'migrations-path': path.resolve('migrations') };
这将告诉 Sequelize CLI 数据库配置文件的位置、模型、种子和迁移文件的位置。
接下来,我们需要创建一个名为 database.json
的配置文件。在 config
文件夹下创建这个文件,并输入以下内容:
// javascriptcn.com 代码示例 { "development": { "username": "root", "password": "password", "database": "database_development", "host": "127.0.0.1", "dialect": "mysql", "operatorsAliases": false }, "test": { "username": "root", "password": "password", "database": "database_test", "host": "127.0.0.1", "dialect": "mysql", "operatorsAliases": false }, "production": { "username": "root", "password": "password", "database": "database_production", "host": "127.0.0.1", "dialect": "mysql", "operatorsAliases": false } }
这将告诉 Sequelize 如何连接数据库。
创建迁移文件
现在我们已经完成了准备工作,可以开始创建迁移文件了。在命令行中输入以下命令:
sequelize migration:create --name=create_users_table
这将创建一个名为 create_users_table
的迁移文件。打开这个文件并输入以下内容:
// javascriptcn.com 代码示例 'use strict'; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable('users', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, name: { type: Sequelize.STRING, allowNull: false }, email: { type: Sequelize.STRING, allowNull: false, unique: true }, password: { type: Sequelize.STRING, allowNull: false }, created_at: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP') }, updated_at: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP') } }); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable('users'); } };
这个迁移文件将创建一个名为 users
的表,包含 id
、name
、email
、password
、created_at
和 updated_at
字段。
执行迁移
现在我们已经创建了迁移文件,可以执行迁移了。在命令行中输入以下命令:
sequelize db:migrate
这将执行所有还没有执行的迁移文件。
如果需要撤销迁移,可以使用以下命令:
sequelize db:migrate:undo
这将撤销最近的一个迁移文件。
总结
在本文中,我们介绍了如何在 Express.js 中使用 Sequelize 进行数据库迁移的最佳实践。我们首先完成了准备工作,然后创建了一个迁移文件,并执行了迁移。希望这篇文章对你有所帮助,让你更好地使用 Sequelize 进行数据库迁移。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656941b4d2f5e1655d1ca8be