作为一位前端工程师,经常需要处理和管理数据库。而 npm 上有很多可以轻松管理数据库的包,其中一个非常实用的包就是 migrate-postgres。
migrate-postgres 是一个用于将数据库模式迁移的库,它是一个基于 Postgres 数据库的轻量级且易于使用的迁移工具。它使用简单的 JSON 文件来描述更改,自动跟踪更改历史记录,并可自动回滚到以前的版本。
下面是一份详细的使用教程,帮助你了解如何使用 migrate-postgres 包。
安装
在开始之前,你需要先安装 Node.js 和 npm。接下来,我们可以使用以下命令来安装 migrate-postgres 包:
npm install migrate-postgres pg
其中,pg 是 migrate-postgres 依赖的一个 Postgres 客户端包。
配置
在你的项目根目录下,创建一个叫做 migrations 的文件夹。这个文件夹将包含用来迁移数据库的 JavaScript 代码。
接下来,创建一个名为 migrate.js 的文件。在这个文件里,你需要配置如何连接到 Postgres 数据库。这里我们使用的是 node-postgres 包。以下是一个示例:
-- -------------------- ---- ------- ----- - ------ - - -------------- ----- ------- - ---------------------------- ----- ---- - ---------------- ----- ------ - --- -------- ----- ----------- ----- ------------ --------- ---------------- --------- ------- ----- ----- -- -------- ----- --- ----- ------- - --- --------------- - --------------- -------------------- -------------- ----------- --------- -- -------- -- ------ --- --------------------- -- - ---------------------- ----------- -------------- -- - ------------------- ---
在这个配置中,我们使用了 Migrate 类。它需要传入一个客户端和一些选项。其中,我们指定了 migrationsPath 选项,告诉 migrate-postgres 从哪里读取迁移文件。还指定了 schemaName,告诉 migrate-postgres 使用哪个 schema。
创建迁移文件
与其他迁移库类似,migrate-postgres 通过使用迁移文件来管理数据库模式。这些文件可以是任何类型的文件,但最简单且最常见的文件类型是 JavaScript 文件。
在 migrations 文件夹下,我们创建两个示例文件:
创建 user 表:
-- -------------------- ---- ------- ---------- - ----- -------- -- - ----- -------------- ------ ----- -- --- ------ ----- - -- ------ ------- ---- ---- ------------ --- ----- --- ------- --- ----- ---------- --------- --- ---- ------- ----- -- --- -- ------------ - ----- -------- -- - ----- -------------- ---- ----- ------ --- --
这段代码会创建名为 users 的表,并在表里添加一些字段,比如 id、name、age 和 created_at。该表使用 SERIAL 类型的 id 字段,它将自动增加。created_at 字段默认为当前的时间戳。如果需要删除该表,可以使用 down 导出。
创建 blog 表:
-- -------------------- ---- ------- ---------- - ----- -------- -- - ----- -------------- ------ ----- -- --- ------ ----- - -- ------ ------- ---- ----- ------------ --- ----- ------- ---- --- ----- ---------- --------- --- ---- ------- ------ ------- ------- ---------- --------- -- --- -- ------------ - ----- -------- -- - ----- -------------- ---- ----- ------ --- --
这段代码创建另一个表格,名为 blogs。该表与 users 表有外键关系,通过 user_id 字段与 users.id 字段链接。同样,也提供了删除该表的 down 导出。
运行迁移
现在我们已经创建了两个迁移文件,接下来我们需要运行这些迁移文件。
在项目根目录下,运行以下命令:
node migrate.js up
这个命令将会运行全部的 up 函数,使创建所有表,或者更新被修改的表。
如果你需要回滚迁移,可以运行以下命令:
node migrate.js down
这个命令将会运行全部的 down 函数,使删除所有表,或者回滚被修改的表。
你也可以根据需要运行特定的迁移文件。只需要指定它们的名称。
例如,如果需要运行 blog 表的迁移文件,则可以运行以下命令:
node migrate.js up blog
如果你需要回滚 blog 迁移文件,则可以运行以下命令:
node migrate.js down blog
总结
migrate-postgres 是一个非常实用的迁移工具。它不仅使用简单的 JSON 文件来描述更改,自动跟踪更改历史记录,还有自动回滚到以前的版本。在上述示例中,我们演示了如何安装和使用 migrate-postgres 包,并演示如何创建和运行迁移文件。希望这篇文章能够对你的前端开发工作有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f461d8e776d08040f92