返回介绍

创建数据库迁移存储库

发布于 2025-01-02 21:53:49 字数 1410 浏览 0 评论 0 收藏 0

上一节中创建的模型类定义了此应用程序的初始数据库结构( 元数据 )。 但随着应用的不断增长,很可能会新增、修改或删除数据库结构。 Alembic(Flask-Migrate 使用的迁移框架)将以一种不需要重新创建数据库的方式进行数据库结构的变更。

这是一个看起来相当艰巨的任务,为了实现它,Alembic 维护一个 数据库迁移存储库 ,它是一个存储迁移脚本的目录。 每当对数据库结构进行更改后,都需要向存储库中添加一个包含更改的详细信息的迁移脚本。 当应用这些迁移脚本到数据库时,它们将按照创建的顺序执行。

Flask-Migrate 通过 flask 命令暴露来它的子命令。 你已经看过 flask run ,这是一个 Flask 本身的子命令。 Flask-Migrate 添加了 flask db 子命令来管理与数据库迁移相关的所有事情。 那么让我们通过运行 flask db init 来创建 microblog 的迁移存储库:

(venv) $ flask db init
  Creating directory /home/miguel/microblog/migrations ... done
  Creating directory /home/miguel/microblog/migrations/versions ... done
  Generating /home/miguel/microblog/migrations/alembic.ini ... done
  Generating /home/miguel/microblog/migrations/env.py ... done
  Generating /home/miguel/microblog/migrations/README ... done
  Generating /home/miguel/microblog/migrations/script.py.mako ... done
  Please edit configuration/connection/logging settings in
  '/home/miguel/microblog/migrations/alembic.ini' before proceeding.

请记住, flask 命令依赖于 FLASK_APP 环境变量来知道 Flask 应用入口在哪里。 对于本应用,正如 第一章 ,你需要设置 FLASK_APP = microblog.py

运行迁移初始化命令之后,你会发现一个名为 migrations 的新目录。该目录中包含一个名为 versions 的子目录以及若干文件。从现在起,这些文件就是你项目的一部分了,应该添加到代码版本管理中去。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文