
blainehansen/postgres_migrator该Docker镜像是一个专注于PostgreSQL数据库的原始SQL迁移工具,主要用于生成和管理数据库的SQL迁移脚本。它允许开发者通过简单的命令行操作,创建、组织和执行原生SQL格式的数据库迁移文件,确保数据库结构变更过程可追踪、可重复,简化数据库版本控制和多环境同步。
通过以下命令生成新的迁移脚本(需挂载本地目录存储脚本):
bashdocker run -v $(pwd)/migrations:/app/migrations blainehansen/postgres-migration-tool generate --name create_users_table
-v $(pwd)/migrations:/app/migrations:将本地当前目录下的migrations文件夹挂载到容器内的/app/migrations目录,用于存储生成的迁移脚本。generate --name create_users_table:执行生成命令,--name指定脚本名称(建议使用描述性名称,如create_users_table、add_email_index_to_users)。执行后,migrations目录下会生成类似V1__create_users_table.sql的文件(V后为版本号,__后为脚本名称),可直接编辑该文件添加具体SQL语句。
通过以下命令执行已生成的迁移脚本(需配置数据库连接信息):
bashdocker run -v $(pwd)/migrations:/app/migrations \ -e POSTGRES_HOST=your-postgres-host \ -e POSTGRES_PORT=5432 \ -e POSTGRES_DB=your-db-name \ -e POSTGRES_USER=your-db-user \ -e POSTGRES_PASSWORD=your-db-password \ blainehansen/postgres-migration-tool migrate
POSTGRES_HOST:PostgreSQL数据库主机地址。POSTGRES_PORT:PostgreSQL数据库端口(默认5432)。POSTGRES_DB:目标数据库名称。POSTGRES_USER:数据库连接用户名(需具备执行DDL/DML权限)。POSTGRES_PASSWORD:数据库连接密码。查询已执行的迁移记录:
bashdocker run -v $(pwd)/migrations:/app/migrations \ -e POSTGRES_HOST=your-postgres-host \ -e POSTGRES_PORT=5432 \ -e POSTGRES_DB=your-db-name \ -e POSTGRES_USER=your-db-user \ -e POSTGRES_PASSWORD=your-db-password \ blainehansen/postgres-migration-tool history
除上述基本连接参数外,支持以下可选环境变量:
MIGRATION_TABLE:自定义迁移状态跟踪表名(默认schema_migrations),用于记录已执行的迁移版本。POSTGRES_SSL_MODE:PostgreSQL连接SSL模式(可选值:disable、allow、prefer、require,默认disable)。生成的迁移脚本需遵循以下规范:
V<版本号>__<脚本名称>.sql(如V2__add_email_to_users.sql),版本号需为整数且递增。CREATE TABLE、ALTER TABLE等),无需额外格式封装。migrations文件夹。docker run ... generate --name create_users_table,编辑生成的V1__create_users_table.sql文件,添加:
sqlCREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
docker run ... migrate,将表结构应用到数据库。history命令确认迁移已执行,或直接查询数据库验证表结构。V2__drop_users_table.sql)。migrations目录有读写权限,避免容器内无法生成或读取脚本文件。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务