📅  最后修改于: 2023-12-03 15:32:28.791000             🧑  作者: Mango
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
的新表,该表包含 id
、username
、password
和 timestamps
列。down
方法使用 knex.schema.dropTable
将该表删除。
要运行迁移,请使用以下命令:
$ knex migrate:latest
该命令将运行所有尚未运行的迁移文件,并将它们应用于您的数据库。
如果您需要回滚已应用的迁移,则可以使用以下命令:
$ knex migrate:rollback
该命令将回滚最后一个已应用的迁移文件。如果您需要回滚多个迁移,可以使用以下命令:
$ knex migrate:rollback --all
该命令将回滚所有已应用的迁移文件。