在前端开发中,我们经常需要维护数据库的结构和数据。而 changedb 是一个npm包,它可以让我们进行数据库的版本控制,以及更新和回滚数据库的变化。
安装和配置
在终端中使用以下命令安装 changedb:
npm install -g changedb
安装完成后,我们需要先配置数据库连接信息。在终端中执行以下命令,进入 changedb 的配置界面:
changedb config
在这里我们需要填写数据库的连接信息,包括数据库类型、主机名、端口号、数据库名称以及用户名和密码等。
创建一个新的 migration
在 changedb 中,每个变更都是一个 migration,我们可以通过以下命令来创建一个新的 migration:
changedb create migration_name
这里的 migration_name
可以是任何你想要的名称,但要注意不要和已存在的 migration 文件名重复。执行完成后,我们会在当前路径下创建一个新的 migration 文件夹,其中包含了 up.sql 和 down.sql 两个文件。
up.sql 文件中定义了数据库升级所需要执行的 SQL 语句,而 down.sql 中定义了回滚所需要执行的 SQL 语句。
执行 migration
使用以下命令来执行 migration:
changedb migrate
执行该命令,changedb 会按照 migration 文件名排序,然后逐一执行其中尚未被执行过的 migration。
如果需要单独执行某个 migration,可以使用以下命令:
changedb migrate --to migration_name
回滚 migration
如果需要回滚 migration,可以使用以下命令:
changedb rollback
该命令会回滚上一个 migration 的变化。
如果需要回滚到某个特定的 migration,可以使用以下命令:
changedb rollback --to migration_name
示例代码
下面是一个具体示例,我们需要使用 changedb 来创建一个新的表 user,并插入一条记录。
- 在终端中执行以下命令:
changedb create create_users_table
该命令会创建一个新的 migration 文件夹,其中包含了 up.sql 和 down.sql 两个文件。
- 修改 up.sql 文件,增加创建 user 表的 SQL 语句:
CREATE TABLE user ( id int(11) unsigned NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL DEFAULT '', age int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 修改 down.sql 文件,增加删除 user 表的 SQL 语句:
DROP TABLE user;
- 在终端中执行以下命令:
changedb migrate
该命令会执行 up.sql 中的创建 user 表的 SQL 语句,创建一个新的 user 表。
- 修改 up.sql 文件,增加插入一条记录的 SQL 语句:
INSERT INTO user (name, age) VALUES ('Alice', 18);
- 在终端中执行以下命令:
changedb migrate
该命令会执行 up.sql 中新增的插入记录的 SQL 语句,往 user 表中插入一条记录。
- 在终端中执行以下命令:
changedb rollback
该命令会执行 down.sql 中的删除 user 表的 SQL 语句,并删除 user 表。
总结
changedb 是一个非常实用的 npm 包,可以帮助我们管理数据库的变化,并且提供了非常方便的回滚操作。使用该工具,可以减轻我们在数据库变更过程中的工作量,提高我们的工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005537481e8991b448d0a67