40 个版本
使用旧的 Rust 2015
0.14.0 | 2021年3月24日 |
---|---|
0.13.0 | 2019年7月13日 |
0.12.0 | 2018年12月22日 |
0.11.5 | 2018年11月4日 |
0.1.0 | 2016年12月21日 |
#2054 在 数据库接口
每月 137 次下载
26KB
343 行
Migrant
由
migrant_lib
驱动的基本迁移管理器
支持的数据库/功能
功能 | 后端 |
---|---|
postgres |
启用 postgres 连接 |
sqlite |
启用 sqlite 连接 |
mysql |
启用 mysql 连接 |
更新 |
启用 自我更新 功能 |
migrant
将管理位于 <project-dir>/migrations/
下的所有迁移,其中 project-dir
是包含 Migrant.toml
配置文件的最近父路径 (..../<project-dir>/Migrant.toml
)。默认迁移文件位置可以在您的 Migrant.toml
文件中修改 ("migration_location"
)。如果 migration_location
目录不存在,则在创建新迁移时第一次创建。 migrant
将所有已应用的迁移存储在名为 __migrant_migrations
的数据库表中。
注意: 在您的 Migrant.toml
中以 env:
前缀的配置值将来自环境变量。例如,database_user = "env:DB_USER"
将使用环境变量 DB_USER
的值。如果存在 .env.
文件,它将在加载 Migrant.toml
之前自动“源”。
注意: SQL 语句将按原样批量执行。如果您希望迁移在事务中以原子方式发生,您必须手动将语句包装在事务中 (begin transaction; ... commit;
)。
安装
二进制发布
请参阅 发布 以获取二进制文件。如果您已经安装了二进制发布,您可以通过 migrant self update
更新到最新版本。
从源代码构建
默认情况下,migrant
将不会启用任何功能,会回退到使用各个数据库的 cli
命令(psql
/ sqlite3
/ mysqlsh
)。可以通过相应的功能标志激活 postgres
、rusqlite
和 mysql
数据库驱动库。注意,一些驱动程序需要它们的开发库(postgresql
:libpq-dev
,sqlite
:libsqlite3-dev
)。在 update
功能后面提供了 Self update 功能(更新到最新的 GitHub 发布版)。二进制发布版包含所有功能。
从源代码构建(crates.io
)
# install without features
# use cli commands for all db interaction
cargo install migrant
# install with `postgres`
cargo install migrant --features postgres
# install with `rusqlite`
cargo install migrant --features sqlite
# all
cargo install migrant --features 'postgres sqlite mysql update'
简单使用
migrant init [--type <database-type>, --location <project-dir>, --no-confirm]
- 通过创建包含数据库信息/凭据的 Migrant.toml
文件来初始化项目。当交互式运行(没有 --no-confirm
)时,会自动运行 setup
。
migrant setup
- 验证数据库信息/凭据,如果缺失则设置 __migrant_migrations
表。
migrant new <tag>
- 在指定的 migration_location
下生成带有给定 <tag>
的新上移和下移文件。
migrant edit <tag> [--down]
- 使用给定的 <tag>
编辑 up
[或 down
] 迁移文件。
migrant list
- 显示所有可用的 .sql 文件,并标记已应用的项目。
migrant apply [--down, --all, --force, --fake]
- 应用下一个可用的迁移。
migrant shell
- 打开一个 repl
migrant which-config
- 显示正在使用的 Migrant.toml
文件的完整路径
migrant connect-string
- 显示从配置参数生成的连接字符串或 sqlite 的数据库路径
migrant self update
- 更新到 GitHub 上发布的最新版本。
migrant self bash-completions install [--path <path>]
- 生成一个 bash 完成脚本并将其保存到默认路径或指定路径。
作为库的使用
请参阅 migrant_lib
和 示例。 migrant
本身只是 migrant_lib
的薄包装,因此可以将完整的迁移管理功能嵌入到您的实际项目中。
开发
请参阅 贡献指南
Docker
安装了二进制的镜像可在 jaemk/migrant:latest
找到
依赖关系
~9–31MB
~515K SLoC