Django:啥时候运行makemigrations?

Posted

技术标签:

【中文标题】Django:啥时候运行makemigrations?【英文标题】:Django: When to run makemigrations?Django:什么时候运行makemigrations? 【发布时间】:2017-08-18 10:19:52 【问题描述】:

除了向模型添加/删除/修改字段外,Django 还会在我向模型添加或修改方法时检测更改。

所以我的问题是每次我在模型中更改或添加新方法时我应该运行makemigrations 吗?

【问题讨论】:

【参考方案1】:

当您添加/更改模型方法时,您不需要运行./manage makemigrations./manage.py migrate

但是,每当您编辑模型字段(添加新字段、更改现有字段或更改其采用的任何参数)时,您都应该始终运行迁移。

【讨论】:

【参考方案2】:

首先,

./manage makemigrations

将在您的应用迁移文件夹中创建 (migration_number).py 文件。这些代码行只是有助于在各自数据库中创建实际字段的语句,类似于 SQL 语句。

为了执行使用前面命令创建的迁移,我们将运行以下命令,

./manage.py migrate

在迁移时,如果没有错误,您的新模型字段将反映在数据库中

【讨论】:

以上是关于Django:啥时候运行makemigrations?的主要内容,如果未能解决你的问题,请参考以下文章

我应该对我的所有应用程序运行 Django“makemigrations”吗?

Django 1.7 makemigrations 没有效果

makemigrations 和升级到 Django 1.7 的问题

Django:添加整数字段后在应用程序上运行 makemigrations 时出现“未知列”

django heroku makemigrations 忽略模型的变化

使用 Django-todo 时使用空数据库运行 makemigrations 时出现“OperationalError:没有这样的表:django_site”