- 将表定义添加到
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]中的blackhook
- 将
- 按照 此链接 更新
db/migrations/env.py文件 - 将以下函数添加到
configure中,以仅包含 target_metadata 中的表
db/migrations/env.py