- 将表定义添加到
db/tables
目录。 - 在
db/tables/__init__.py
文件中导入表类。 - 创建数据库迁移。
- 运行数据库迁移。
表定义
我们来创建一个UsersTable
,将以下代码复制到 db/tables/user.py
db/tables/user.py
db/tables/__init__.py
文件:
db/tables/__init__.py
创建数据库修订
在开发容器中运行 alembic 命令来创建数据库迁移:迁移开发数据库
运行 alembic 命令来迁移开发数据库:可选:添加测试用户
现在我们来添加一个测试用户。将以下代码复制到db/tables/test_add_user.py
db/tables/test_add_user.py
迁移生产数据库
我们建议通过设置环境变量MIGRATE_DB = True
并重新启动生产服务来迁移生产数据库。这将从入口点脚本在容器启动时运行 alembic -c db/alembic.ini upgrade head
。
更新 workspace/prd_resources.py
文件
workspace/prd_resources.py
更新 ECS 任务定义
由于我们更新了环境变量,我们需要更新任务定义:更新 ECS 服务
更新任务定义后,重新部署生产应用程序:手动迁移生产数据库
另一种方法是 SSH 进入生产容器以手动运行迁移。您的 ECS 任务已启用 SSH 访问。运行 alembic 命令来迁移生产数据库:migrations 目录是如何创建的
这些命令已经运行过,并在此描述以供完整性参考
- 运行上述命令后,应会创建
db/migrations
目录。 - 更新
alembic.ini
- 将
script_location = db/migrations
设置为 - 取消注释
[post_write_hooks]
中的black
hook
- 将
- 按照 此链接 更新
db/migrations/env.py
文件 - 将以下函数添加到
configure
中,以仅包含 target_metadata 中的表
db/migrations/env.py