如何在不重新手动重启服务器的情况下添加新模型并进行迁移?

时间:2018-06-16 08:08:08

标签: django python-3.x django-models

对于我正在构建的应用程序,我需要能够尽快在models.py中创建新的数据模型。

我创建了一种方法,通过创建一个单独的python程序来打开models.py,编辑它,关闭它,并自动进行服务器迁移,但必须有更好的方法。

编辑:我的方法适用于我的本地服务器,但不适用于pythonanywhere

2 个答案:

答案 0 :(得分:1)

在Django文档中,我找到了SchemaEditor,这正是您想要的。使用SchemaEditor,您可以创建模型,删除模型,添加字段,删除字段等。

这是摘录:

  

Django的迁移系统分为两个部分:逻辑   计算并存储应运行的操作   (django.db.migrations),以及数据库抽象层   诸如在SQL中“创建模型”或“删除字段”之类的东西-   SchemaEditor的工作。

答案 1 :(得分:0)

不要自动重写models.py文件,这不是它的工作方式。如果您需要更灵活地存储数据,则应执行以下操作:

  • 如果需要,请仔细考虑要存储的数据类型,并使数据模型更加抽象,以适应更多情况。
  • 使用JSON字段与您的模型存储任意JSON数据(例如for the Postgres database
  • 如果不合适,请不要使用Django的ORM并使用其他商店(例如Redis用于键值或MongoDB用于JSON文档)