【发布时间】:2019-08-10 21:24:07
【问题描述】:
是否有任何库或工具可以在没有 SQLAlchemy 的情况下在 python 中执行数据库迁移?我正在使用 PostgreSQL 数据库,查询是原始 SQL。我使用 psycopg2 进行数据库连接。
【问题讨论】:
-
你的意思是不使用
flask-migrate的迁移? -
psycopg2是 db connection api,psycopg2您必须使用标准 sql 命令对数据库进行操作,但是flask-SQLAlchemy是围绕SQLAlchemy构建的 ORM 包装器,并为您提供数据库的pythonic接口,所以如果你想真正使用python管理数据库,你应该使用SQLAlchemy或flask-SQLAlchemy。 python 中的实际迁移库是alembic,flask-migrate是基于alembic构建的便捷包装器。 -
我知道,但我正在从事一个尚未使用 SQLAlchemt 的项目,我需要实现数据库迁移。有什么建议吗?
-
您必须使用 alembic 并自己手动运行迁移脚本。
-
alembic为您生成迁移脚本,它隐藏了为数据库中现有表更新架构的巨大复杂性。更新数据库中现有表的模式是一项非常复杂的操作,并且需要对具有大量列的表进行仔细规划,并且想象一下如果您必须经常执行此类操作,甚至会很麻烦。alembic与flask-migrate相结合使这项任务变得非常容易。
标签: python postgresql flask database-migration