在我的模型中进行了一些更改(例如,模型中的新字段和新模型)后,将这些更改反映到我的填充数据库的最佳方式是什么?
PS:我想在一个地方看到许多解决方案的评级。显然这里已经列出了更多的解决方案。
另一种技术是在 manage.py 中使用 dumpdata 和 loaddata 参数,在中间杀死你的数据库:
python manage.py dumpdata > dump.json
python manage.py loaddata dump.json
有关更多信息,请参阅manage.py 文档。
我在这里问了一个类似的问题并得到了很多答案。
有很多方法可以做到这一点,例如使用 SQL 手动执行转储和重新加载,使用固定装置或使用 Django 的“新兴”模式演变包之一:
取决于更改的范围。如果它超出了 ALTER,那么您正在做大手术。备份模型和数据库,以便您可以返回。
我的偏好是将您的新(修订、更正、扩展)模型作为新应用程序放入。它没有 URL 或任何东西,只是一个模型。
从旧模型中提取数据后,您可以以首选的新格式重建数据库。
Django 现在有自己的内置迁移,记录在:
使用 manage.py sqlall 查看新列的参数是什么,并使用 Alter table 语句将它们手动添加到数据库中。这样您就不必重做数据库;虽然它需要一些 SQL 知识...
看看这里(向下滚动到“对数据库模式进行更改”)
Perform these steps in order may help you
:
For more details,
点击这里:http : //south.readthedocs.org/en/latest/
1)python manage.py schemamigration apps.appname --initial
上述步骤默认创建迁移文件夹。
2)python manage.py migrate apps.appname --fake
生成虚假迁移。
3)python manage.py schemamigration apps.appname --auto
然后您可以根据需要添加字段并执行上述命令。
4)python manage.py migrate apps.appname
然后将文件迁移到数据库。