use*_*084 2 python postgresql flask flask-sqlalchemy alembic
使用此设置:
-Development environment
-Flask
-SQLAlchemy
-Postgres
-Possibility Alembic
Run Code Online (Sandbox Code Playgroud)
如果我有一个数据库,其中一些表填充了随机数据.据我所知,Flask-Migrate将使用Alembic,不会保留数据,只保持模型和数据库同步.
但是使用Alembic或者只是删除>创建所有表之间有什么区别?
就像是:
db.create_all()
Run Code Online (Sandbox Code Playgroud)
第二个问题:
当模型中的某些变化时,数据会发生什么变化?数据会丢失吗?或者Alembic可以保留以前填充的数据?
好吧,我的想法是用一些数据填充数据库,然后避免模型更改时丢失任何数据.Alembic是解决方案吗?
或者我需要从.sql文件导入数据,例如,当我更改模型和数据库时?
Mig*_*uel 12
我是Flask-Migrate的作者.
你不对.Flask-Migrate(通过Alembic)将始终保留数据库中的数据.这是使用数据库迁移的全部要点,您不希望丢失数据.
您似乎已经拥有一个包含数据的数据库,并且您希望开始使用迁移.您有两种方法可以将Flask-Migrate合并到您的项目中:
仅跟踪正在进行的迁移,即将初始数据库模式保留在迁移跟踪之外.
为此,你真的没有什么特别的事情要做.只需manage.py db init创建迁移存储库,当您需要迁移数据库时,通常会这样做manage.py db migrate.此方法的缺点是Flask-Migrate/Alembic没有数据库的初始模式,因此无法从头开始重新创建数据库.
实施初始迁移,将数据库置于当前状态,然后继续正常跟踪未来的迁移.
这需要一些技巧.在这里,您希望Alembic记录定义当前架构的初始迁移.由于Alembic通过将模型与数据库进行比较来创建迁移,因此诀窍是用空数据库替换真实数据库,然后生成迁移.记录初始迁移后,您将还原数据库,从那时起,您可以继续正常迁移数据库.
我希望这有帮助.如果您还有其他问题,请与我们联系.
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |