📜  knex 创建新的迁移 (1)

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

使用 Knex 创建新的迁移

什么是 Knex?

Knex 是一个用于 Node.js 的 SQL 查询生成器,它可以让您通过 JavaScript 对数据库进行查询和操作而不需要使用 SQL 语句。Knex 使用标准的 SQL 语法并支持 PostgreSQL,MySQL,MariaDB,SQLite3 和 Oracle 数据库。

什么是迁移?

迁移是用于在数据库中创建和修改表的工具。它可以让您在应用程序升级时对数据库进行更改,而不会丢失任何现有数据。您可以使用迁移来创建新表、添加列、删除列、更改列等。

创建新的迁移

要创建一个新的迁移,在终端中运行以下命令:

$ knex migrate:make migration_name

其中 migration_name 是您想要为迁移命名的名称。例如,如果您正在创建一个迁移以添加一个新表,可以使用以下命令:

$ knex migrate:make create_users_table

该命令将创建一个新的迁移文件 create_users_table.js,并将其放置在您的 Knex 迁移文件夹中(默认情况下是 ./migrations 文件夹)。

##编写迁移代码

打开新创建的迁移文件,您将看到一个名为 up 的方法和一个名为 down 的方法。up 方法是用于添加新表或修改现有表的列,而 down 方法是用于删除表或回滚更改。

以下是一个创建新表的例子:

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

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

在此例中,up 方法使用 knex.schema.createTable 创建一个名为 users 的新表,该表包含 idusernamepasswordtimestamps 列。down 方法使用 knex.schema.dropTable 将该表删除。

运行迁移

要运行迁移,请使用以下命令:

$ knex migrate:latest

该命令将运行所有尚未运行的迁移文件,并将它们应用于您的数据库。

如果您需要回滚已应用的迁移,则可以使用以下命令:

$ knex migrate:rollback

该命令将回滚最后一个已应用的迁移文件。如果您需要回滚多个迁移,可以使用以下命令:

$ knex migrate:rollback --all

该命令将回滚所有已应用的迁移文件。