📜  heroku 运行 knex 迁移 (1)

📅  最后修改于: 2023-12-03 15:31:07.635000             🧑  作者: Mango

Heroku 运行 Knex 迁移

在 Heroku 上运行 Knex 迁移可以让你轻松地对数据库进行管理和维护。本文将介绍如何在 Heroku 上使用 Knex 迁移。

前提条件

在使用 Heroku 运行 Knex 迁移之前,你需要做以下准备工作:

  1. 你需要在 Heroku 上创建一个应用程序,并将你的代码部署到该应用程序中。
  2. 你需要在 Heroku 上创建一个 PostgreSQL 数据库,或者将你的本地数据库连接到 Heroku 上。
安装 Knex

在开始使用 Knex 迁移之前,你需要先安装 Knex。你可以使用以下命令在你的项目中安装 Knex:

npm install --save knex
配置 Knex

在使用 Knex 迁移之前,你需要先配置 Knex。你可以在你的项目根目录中创建一个 knexfile.js 文件来配置 Knex。

下面是一个示例 knexfile.js 文件,其中包含了 Knex 的基本配置信息:

module.exports = {

  development: {
    client: 'postgresql',
    connection: 'postgres://localhost/mydb'
  },

  production: {
    client: 'postgresql',
    connection: process.env.DATABASE_URL
  }

};

在上面的配置文件中,我们定义了两个数据库环境:developmentproduction。在 development 环境中,我们使用本地的 PostgreSQL 数据库 mydb。在 production 环境中,我们使用 Heroku 上的 PostgreSQL 数据库。

创建迁移

在配置好 Knex 后,你可以开始创建迁移了。你可以使用以下命令来创建一个新的迁移:

npx knex migrate:make migration_name

其中 migration_name 是你想要给这个迁移起的名字。

该命令将在 migrations 目录中创建一个新的迁移文件,该文件的命名规则为 timestamp_migration_name.js,其中 migration_name 是你给这个迁移起的名字,timestamp 是该迁移创建的时间戳。

下面是一个示例迁移文件 20210101120000_add_users_table.js

exports.up = function(knex) {
  return knex.schema.createTable('users', function (table) {
    table.increments('id').primary();
    table.string('name').notNullable();
    table.string('email').unique().notNullable();
    table.timestamps(true, true);
  });
};

exports.down = function(knex) {
  return knex.schema.dropTable('users');
};

在上面的示例迁移文件中,我们通过 exports.upexports.down 创建了一个名为 users 的数据库表。exports.up 用来向数据库中添加新表或新列,exports.down 用来删除表或列。

运行迁移

在创建好迁移之后,你可以使用以下命令来运行迁移:

npx knex migrate:latest

该命令将会依次运行你所有尚未运行的迁移,将数据库表更新到最新状态。

回滚迁移

如果你需要回滚已经完成的迁移,你可以使用以下命令:

npx knex migrate:rollback

该命令将会撤销最后一次运行的迁移,将数据库表恢复到上一个状态。

结论

Heroku 和 Knex 迁移是非常强大的工具,可以帮助你方便地管理和维护你的数据库。本文介绍了如何在 Heroku 上运行 Knex 迁移,包括安装 Knex、配置 Knex、创建迁移、运行迁移和回滚迁移。希望这篇文章对你有所帮助!