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