📜  goose db 迁移 (1)

📅  最后修改于: 2023-12-03 14:41:36.941000             🧑  作者: Mango

Goose DB 迁移

Goose是一个Go语言的数据库迁移工具,可以在不破坏现有数据库数据的情况下,更改数据库结构和内容。它可以支持多种数据库,例如PostgreSQL、MySQL等等。

安装

安装Goose可以使用go get命令,如下所示:

go get -u github.com/pressly/goose/cmd/goose
使用方法
1. 初始化迁移

在开始使用Goose之前,需要通过初始化命令创建一个迁移文件夹以及配置文件。在终端下输入以下命令:

goose init migration go

执行这个命令后,会在当前目录下生成一个migration文件夹,里面包含了一个模板文件和goose的配置文件。可以根据需要修改配置文件中的数据库连接信息。

2. 创建迁移

在migration目录下创建一个新的迁移文件,可以使用下面的命令:

goose create create_users_table sql

执行以上命令会在migration目录下生成一个名为_create_users_table.sql的文件,它是一个sql脚本文件,用于创建一个users表。可以根据需要在该文件中添加其他的数据库操作语句。在最顶部添加下面Goose的执行语句可以使得Goose正确执行此SQL脚本文件:

-- +goose Up
-- SQL in section 'Up' is executed when this migration is applied
CREATE TABLE users (id serial primary key, name text, email text);

-- +goose Down
-- SQL section 'Down' is executed when this migration is rolled back
DROP TABLE IF EXISTS users;
3. 执行迁移

使用下面的命令可以执行迁移脚本:

goose up

此命令会执行所有还未执行的迁移文件。

4. 回滚

如果错误地执行了一个迁移,需要回滚到之前的状态,则可以执行下面的命令:

goose down
5. 查看状态

使用下面的命令可以查看当前迁移的状态:

goose status

如果某个迁移还没有执行,则状态为“pending”。如果迁移已经执行,状态为“applied”。

总结

在使用Goose进行数据库迁移时,我们需要执行以下步骤:

  1. 初始化迁移目录和配置文件
  2. 创建迁移文件,添加sql语句
  3. 执行迁移
  4. 回滚
  5. 查看状态

通过上述步骤,我们可以很方便地在不破坏原有数据的情况下修改数据库结构,确保数据库迁移的正确性。