📜  knex.js 迁移创建 - Javascript (1)

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

Knex.js 迁移创建 - Javascript

Knex.js 是一个可靠的Node.js SQL查询构建器,用于构建数据库驱动的应用程序。它具有简单易用的API,支持多种数据库,包括PostgreSQL,MySQL和SQLite3等。此外,Knex.js还提供了迁移功能,可简化数据库结构的管理和维护。

在本文中,我们将重点介绍如何使用Knex.js创建迁移,并在代码示例中详细说明每个步骤。

准备工作

在开始使用Knex.js进行迁移创建之前,需要安装相关的依赖项。请运行以下命令:

npm install knex --save
npm install pg --save

上述命令将Knex.js和PostgreSQL数据库驱动安装到本地项目中。

接下来,请在项目根目录中创建一个名为'knexfile.js'的文件,用于设置与数据库的连接。请使用以下模板:

module.exports = {
  development: {
    client: 'postgresql',
    connection: {
      database: 'your_database',
      user:     'your_username',
      password: 'your_password'
    },
    migrations: {
      directory: __dirname + '/db/migrations'
    },
    seeds: {
      directory: __dirname + '/db/seeds'
    }
  },

  production: {
    client: 'postgresql',
    connection: process.env.DATABASE_URL + '?ssl=true',
    migrations: {
      directory: __dirname + '/db/migrations'
    },
    seeds: {
      directory: __dirname + '/db/seeds'
    }
  }
};

上述配置文件定义了两个环境:开发环境(development)和生产环境(production)。在此示例中,我们使用PostgreSQL数据库作为开发和生产环境的默认客户端,但您也可以使用其他支持的客户端,例如MySQL和SQLite3。

请注意,上述配置文件还指定了数据库迁移和种子的目录。默认情况下,Knex.js使用名为'migrations'和'seeds'的目录,但您也可以更改目录位置。

创建迁移

为了创建新的迁移文件,请使用以下命令:

npx knex migrate:make migration_name

请将'migration_name'替换为您要创建的迁移名称。例如,如果要创建添加新表的迁移,则可以使用以下命令:

npx knex migrate:make create_users_table

此命令将在'migrations'目录中创建一个新的迁移文件。打开此文件并将其更新为以下模板:

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

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

上述示例创建了一个名为'users'的表,该表包含'id','name','email'和'timestamps'四个列。请注意,'id'列设置为自动增量主键,'email'列设置为唯一索引。

在创建表之后,我们还需要提供撤消表('down')的方法。这是为了防止在不小心删除表时出现不可恢复的问题。在上例中,'down'方法将删除'users'表。

运行迁移

在完成迁移文件的创建后,我们可以使用以下命令将其应用于数据库:

npx knex migrate:latest

此命令将执行所有未应用的迁移,并将它们添加到数据库中。如果您要回滚最近的迁移,则可以使用以下命令:

npx knex migrate:rollback

您还可以使用以下命令来获得有关迁移状态的详细信息:

npx knex migrate:status

此命令将显示有关每个迁移文件的信息,包括其名称,应用时间和撤消时间。此外,它还将显示当前数据库状态(哪些迁移已应用,哪些未应用)。

结论

使用Knex.js进行迁移创建可以帮助程序员更轻松地管理和维护数据库结构。本文介绍了如何准备(安装依赖项,设置数据库连接),创建迁移文件(使用命令生成,更新迁移文件内容)以及应用迁移文件(执行,回滚,检查状态)。我们希望本文能够帮助您更好地使用Knex.js进行数据库操作。

本文外链

Knex.js 中文文档