python - 我正在使用 Peewee,我需要为我的数据库创建迁移文件

标签 python python-2.7 database-migration psql peewee

我应该如何从这里开始,我有点迷茫。

我有比旧数据库更新的数据库模式。

我看过Arnold包,里面有arnold uparnold down两种方法。有迁移文件,您可以在其中添加所有数据库查询。但我仍然可以看到这些变化,我可以在 up 中添加 create tablealter table 以及 arnold down 我可以添加 drop tablealter table。但是我的迁移将只针对该数据库。

我想了解数据库迁移应该包含哪些内容。它有什么作用。如果有人向我解释 数据库迁移 并将我推向 peewee、psql 数据库迁移的正确方向,我将不胜感激

最佳答案

我们使用一个工具peewee-db-evolve我认为你会发现它很有用。试试这个:

  1. sudo pip install peewee-db-evolve
  2. import peeweedbevolve 添加到 models.py 文件的顶部,或在定义模型之前导入的任何位置。
  3. 打开您的 shell 并在您的 peewee 数据库对象上运行 db.evolve()

对于 (3),在工作中我们有一个如下所示的脚本 evolve.py:

import peeweedbevolve
from config import db
if __name__=='__main__': db.evolve()

只是为了让它变得简单。

它将查看模型和您现有的架构,并为您计算所有 ALTER TABLE 语句。 (无需手动将迁移编写为 w/arnold 或 peewee 的内置版本。)

它看起来像这样:

enter image description here

希望这对您有所帮助!

关于python - 我正在使用 Peewee,我需要为我的数据库创建迁移文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171040/

相关文章:

python - 如何为 python 中的特定行值选择数据框中的列数据?

sql - 反转 postgres 中的列

c++ - 定义类时执行什么代码?

python - FPDF 导入错误 : cannot import name 'FPDF' from 'fpdf' (unknown location)

Python Pandas 使用 Fastparquet 将 CSV 转换为 Parquet

python - 反向打印链表

python - 将Python的内部str转换为等价的打印

如果放入命名空间包中,则子模块的python导入路径

oracle - Flyway 条件数据库迁移

php - laravel 包含进行迁移的路径