#database-migrations #sqlite #mysql #postgresql #database-table #migration

app migrant

CLI PostgreSQL、sqlite、MySQL 数据库迁移管理

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数据库接口

Download history 99/week @ 2024-03-30 9/week @ 2024-04-06 3/week @ 2024-05-18 1/week @ 2024-05-25

每月 137 次下载

MIT 许可证

26KB
343

Migrant

Build Status crates.io: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)。可以通过相应的功能标志激活 postgresrusqlitemysql 数据库驱动库。注意,一些驱动程序需要它们的开发库(postgresqllibpq-devsqlitelibsqlite3-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