
hlpyrepository/alembic-migratorAlembic Migrator是一个基于Alembic的Docker镜像,旨在提供便捷、一致的数据库迁移解决方案。Alembic是SQLAlchemy的官方迁移工具,支持多种关系型数据库的结构变更管理。本镜像封装了Alembic及其运行依赖,无需在本地环境安装配置,即可在任何支持Docker的环境中执行数据库迁移操作。
alembic.ini配置文件和versions迁移脚本目录)bashdocker run -v $(pwd)/migrations:/app/migrations \ -e DATABASE_URL="postgresql://user:password@db-host:5432/dbname" \ alembic-migrator alembic upgrade head
bashdocker run -v $(pwd)/migrations:/app/migrations \ -e DATABASE_URL="mysql://user:password@mysql-host:3306/dbname" \ alembic-migrator alembic revision --autogenerate -m "add user_email_index"
bashdocker run -v $(pwd)/migrations:/app/migrations \ -e DATABASE_URL="sqlite:///./test.db" \ alembic-migrator alembic downgrade -1
| 环境变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
DATABASE_URL | 数据库连接URL(必填) | 无 | postgresql://user:pass@host:5432/db |
ALEMBIC_CONFIG | Alembic配置文件路径 | /app/migrations/alembic.ini | /custom/alembic.ini |
MIGRATIONS_DIR | 迁移脚本根目录 | /app/migrations | /project/migrations |
USER | 容器运行用户ID | root | 1000 |
yamlversion: '3.8' services: db: image: postgres:15 environment: POSTGRES_USER: appuser POSTGRES_PASSWORD: apppass POSTGRES_DB: appdb ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"] interval: 5s timeout: 5s retries: 5 migrator: image: alembic-migrator volumes: - ./migrations:/app/migrations environment: DATABASE_URL: "postgresql://appuser:apppass@db:5432/appdb" depends_on: db: condition: service_healthy command: ["alembic", "upgrade", "head"]
如需使用自定义alembic.ini配置文件,可通过挂载文件覆盖默认配置:
bashdocker run -v $(pwd)/custom-alembic.ini:/app/migrations/alembic.ini \ -v $(pwd)/migrations/versions:/app/migrations/versions \ -e DATABASE_URL="oracle+cx_oracle://user:pass@host:1521/service" \ alembic-migrator alembic history
容器支持所有Alembic原生命令,常用命令包括:
| 命令 | 描述 |
|---|---|
alembic init <dir> | 初始化迁移环境(首次使用时) |
alembic revision -m "<message>" | 创建空白迁移脚本 |
alembic revision --autogenerate -m "<message>" | 根据模型变更自动生成迁移脚本 |
alembic upgrade head | 应用所有未执行的迁移 |
alembic upgrade +1 | 应用下一个迁移 |
alembic downgrade -1 | 回滚最近一次迁移 |
alembic downgrade base | 回滚所有迁移,恢复到初始状态 |
alembic history | 查看迁移历史记录 |
alembic current | 查看当前数据库版本 |
alembic check | 检查迁移脚本与数据库结构一致性 |



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