Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 更新模型_Django_Models - Fatal编程技术网

Django 更新模型

Django 更新模型,django,models,Django,Models,由于我对Django缺乏信心,而且一想到会把我美丽的项目搞砸,我就非常害怕,因此我将在这里寻求适当的建议/指示 我的Django项目所在的数据库已经更改(一些字段类型已经更改),我的模型现在已经不同步。有趣的是,我的Django仍然可以工作(天知道怎么做),但我仍然想更新模型。我该如何用正确的方法来做这件事。事先确实非常感谢你 标记为已回答。我的实际发现是: ./manage.py inspectdb > <file> //Hands you all the tables f

由于我对Django缺乏信心,而且一想到会把我美丽的项目搞砸,我就非常害怕,因此我将在这里寻求适当的建议/指示

我的Django项目所在的数据库已经更改(一些字段类型已经更改),我的模型现在已经不同步。有趣的是,我的Django仍然可以工作(天知道怎么做),但我仍然想更新模型。我该如何用正确的方法来做这件事。事先确实非常感谢你


标记为已回答。我的实际发现是:

./manage.py inspectdb > <file>
//Hands you all the tables from the database. 
//Then you update the models accordingly.
/manage.py-inspectdb>
//将数据库中的所有表交给您。
//然后相应地更新模型。

简单!:)

可能有点晚了,但您可能想看看,这是一个针对Django的迁移系统

对于您的情况,通常的做法是运行
manage.py reset appname
,其中
appname
是包含您更改的型号的应用程序的名称。显然,您首先要转储受影响表中的数据(找出运行
manage.py sqlreset appname
将影响哪些表)


最后,很有可能您的站点仍在愉快地运行,因为您尚未重新启动Web服务器(我假设您谈论的是生产环境,开发服务器会自动重新加载大部分更改)。

如果您已经对实时数据库进行了更改,您可能只需更改模型并重新启动Web服务器

只要您的字段名在数据库和模型之间匹配,就不会有任何问题


也就是说,使用像south这样的迁移工具是一个更好的主意(正如Dominic所建议的)

我自己没有使用过south,我与django evolution合作过,但我遇到了一些问题,可能会转向south。我不知道南方,所以谢谢分享@尼克-南特的作品大多很棒。我偶尔会把自己弄得一团糟,需要重新开始重置,但我怀疑这更多的是我比南方更无能。小心“转储数据->重置应用->加载数据”过程。有时数据无法正确序列化,您将无法加载它。在尝试备份之前,请确保备份数据库process@Jim-我没有遇到过他们。如果无法迁移应用程序,您将如何解决这些问题?手动运行迁移?