#migration #postgresql #sql

app seagull

简单的 PostgreSQL 迁移工具

1 个不稳定版本

0.1.0 2020 年 5 月 21 日

#7 in #迁移

MIT 许可证

20KB
442

seagull

入门指南

基本工作流程如下

  1. seagull init
# seagull.toml

命令

seagull init

创建一个用于存储连接字符串和其他配置值的 seagull.toml 文件。此文件为可选,您可以在不使用它的情况下使用其他命令。

seagull poop

首先创建一个名为 migrations 的目录(如果尚不存在)。其次,在目录中创建一个空白的 .sql 文件,格式为 V{1}__{2}.sql,其中 {1} 是自动递增的版本号,而 {2} 是描述。

USAGE
# creates ./migrations/V1__initial.sql
$ seagull poop initial

# creates ./migrations/V1_create_users_table.sql 
$ seagull poop "create users table"

# creates ./migrations/V2_another_migration.sql assuming V1 exists
$ seagull poop another_migration

seagull migrate

首先创建一个名为 __migration_history 的数据库表(如果尚不存在)。在单个事务中运行 migrations 目录中的所有迁移。如果其中一个失败,它们都会失败,并且数据库将回滚。

USAGE

# reads config from seagull.toml
$ seagull migrate

# specify your PostgreSQL connection string
$ seagull migrate --database postgresql://postgres:mysecretpassword@localhost/postgres

# looks for migrations in src/migrations
$ seagull migrate --dir src/migrations

seagull remigrate

seagull migrate 相同,但它将在运行所有迁移之前首先重置整个数据库。如果您使用 Docker 数据库并且经常更改迁移,则很有用。**不建议在生产环境中运行!** ☠️

# reads config from seagull.toml
$ seagull remigrate

# specify your PostgreSQL connection string
$ seagull remigrate --database postgresql://postgres:mysecretpassword@localhost/postgres

# looks for migrations in src/migrations
$ seagull remigrate --dir src/migrations

依赖项

~11–20MB
~269K SLoC