有没有办法从django中的服务器导入模型?

时间:2015-06-12 18:40:46

标签: django django-models django-views

服务器机器上已存在django项目。现在我想使用服务器机器上的项目模型在另一台机器上开发另一个项目?简而言之,我想在另一台机器上的项目中导入服务器机器的模型。

3 个答案:

答案 0 :(得分:2)

通过Django导入/导出数据的最佳方法是使用django-admin dumpdataloaddata命令:https://docs.djangoproject.com/en/1.8/ref/django-admin/

manage.py dumpdata --all --format json >> mydata.json
manage.py loaddata mydata.json

答案 1 :(得分:1)

假设您要迁移的服务器还没有模型,我只需创建新的models.py并进行迁移,然后从旧环境中转储相关表,并将它们移动到新环境中。

如果新环境中已经存在模型,那么您可以将pks增加100(或1000或其他),然后转储和导入。

虽然通过Django导入它们可能会更好。

或者如果你真的想得到kludgy:

for s in SomeModel.objects.all():
    print "n = NewModel(property1='"+s.property1+"', property2='"+s.property2+"')"
    print "n.save()"

获取该输出,并在新服务器上运行它。为相关模型添加更多等等。

答案 2 :(得分:0)

如果你说的是模型本身(不是数据):

  • 如果您可以访问这些文件,只需复制模型,这是迄今为止最简单的方法。

  • 但是,如果您没有,但可以访问数据库,则可以执行以下操作: $ python manage.py inspectdb > models.py 设置数据库设置后。生成的文件将包含模型定义。

我从来没有尝试过,但我想如果源数据库是使用Django生成的,并且没有太多的自定义字段类型,它应该会给你带来很好的结果。

然后,您将能够根据生成的内容(使用您自己的数据库设置和生成的模型文件)建立真正的数据库。

更多信息here

如果您还需要数据,简单的数据库转储应该对您有所帮助,然后您必须在生成的数据库中导入它。