
hastyai/pg-migrator本镜像是一个针对PostgreSQL数据库的版本控制与迁移工具,旨在简化数据库架构变更的管理流程。通过版本化迁移脚本,实现数据库结构在开发、测试、生产等多环境中的一致性,支持迁移脚本的执行、回滚及历史记录追踪,是团队协作开发和自动化部署中数据库变更管理的核心工具。
bashdocker pull <镜像名称>:<版本标签> # 替换为实际镜像名称和版本
V1__create_users_table.sql、V2__add_email_column.sql)bashdocker run -it --rm \ -v /本地迁移脚本目录:/app/migrations \ # 挂载迁移脚本目录 -e POSTGRES_HOST=数据库主机IP \ # PostgreSQL主机地址 -e POSTGRES_PORT=5432 \ # PostgreSQL端口(默认5432) -e POSTGRES_USER=数据库用户名 \ # 数据库访问用户 -e POSTGRES_PASSWORD=数据库密码 \ # 数据库访问密码 -e POSTGRES_DB=目标数据库名 \ # 目标数据库名称 -e MIGRATION_TABLE=schema_migrations \ # 迁移历史记录表名(默认schema_migrations) <镜像名称>:<版本标签> \ # 镜像名称和版本 migrate # 执行迁移命令(或指定"rollback <版本号>"回滚)
yamlversion: '3.8' services: postgres: image: postgres:15 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: secret POSTGRES_DB: myappdb ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d myappdb"] interval: 5s timeout: 5s retries: 5 db-migration: image: <镜像名称>:<版本标签> volumes: - ./migrations:/app/migrations # 本地迁移脚本目录(需提前创建) environment: POSTGRES_HOST: postgres # 容器网络中PostgreSQL服务名 POSTGRES_PORT: 5432 POSTGRES_USER: postgres POSTGRES_PASSWORD: secret POSTGRES_DB: myappdb depends_on: postgres: condition: service_healthy command: migrate # 启动时自动执行迁移
V<版本号>__<描述>.sql(版本号为整数,双下划线分隔)
V1__init_schema.sql、V2__add_user_roles.sql--rollback注释块定义回滚SQL(部分工具支持):
sql-- 迁移SQL CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(50)); --rollback DROP TABLE users;
| 环境变量名 | 描述 | 默认值 | 必需 |
|---|---|---|---|
| POSTGRES_HOST | PostgreSQL数据库主机地址 | - | 是 |
| POSTGRES_PORT | PostgreSQL数据库端口 | 5432 | 否 |
| POSTGRES_USER | 数据库访问用户名 | - | 是 |
| POSTGRES_PASSWORD | 数据库访问密码 | - | 是 |
| POSTGRES_DB | 目标数据库名称 | - | 是 |
| MIGRATION_TABLE | 迁移历史记录表名 | schema_migrations | 否 |
| MIGRATIONS_DIR | 容器内迁移脚本目录路径 | /app/migrations | 否 |
| LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO | 否 |
docker run ... <镜像> migratedocker run ... <镜像> rollback <版本号>docker run ... <镜像> historydocker run ... <镜像> status(显示待执行/已执行迁移)


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务