- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我错误地删除了路径 projectName/appName/migrations 下的所有 .py 文件,它包括:
0001_initial.py
0011_auto_20150918_0723.py
0002_auto_20150819_1301.py
...
现在,即使我更新了 Model 文件,并运行命令 python manage.py makemigrations
,它总是提示 No changes detected .
我怎样才能恢复一切?
最佳答案
首先,即使您在生产中发生这种情况,也不要 panic 。
当你删除所有迁移时,django 忘记了这个应用程序应该由迁移管理。 Django 默认返回旧版 python manage.py syncdb
无迁移行为,并且不会在您运行 python manage.py makemigrations
为了让它知道迁移,您必须专门为您的应用运行命令:
python manage.py makemigrations appName
但是,对于您正在运行的应用程序,django 将无法检测到新的迁移已经应用到数据库中,并且会在您运行 python manage.py migrate
时尝试再次运行它们.
发生这种情况时,迁移会失败,提示 关系 appName.XYZ 已经存在!
。
为了让 django 明白你的迁移已经反射(reflect)在数据库中,你必须伪造它们:
python manage.py migrate appName --fake
这将更新迁移历史表并将您的迁移标记为已应用,但不会尝试在数据库中创建表。
更新(感谢@GwynBleiD):
这里的一个问题是,已应用的已删除迁移将列在数据库的迁移历史表中。这对于初始 python manage.py makemigrations myApp
不是问题,但是对于任何其他迁移,它会引发有关 inconsistent migration history
的错误。
为避免这种情况,您必须手动删除数据库中 django_migrations 表中引用不存在的迁移的任何行。
关于python - 删除迁移后 makemigrations 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371916/
我正在使用 Django 1.9.6。我最近删除了我的迁移并运行了 migrate --run-syncdb和 makemigrations my_app .今天,我为我的一个模型添加了一个新字段:
我正在使用 Django 1.8.4。由于我的项目仍在 build 中,我经常删除所有迁移脚本,然后重新运行 makemigrations生成初始迁移脚本。 我找到了 makemigrations将为
除了向模型添加/删除/修改字段之外,当我向模型添加或修改方法时,Django 还会检测到更改。 所以我的问题是每次在模型中更改或添加新方法时都应该运行 makemigrations 吗? 最佳答案 当
我已将 Django 项目设置为使用两个数据库。一个是只读的,另一个是项目其余部分的“默认”django 数据库。 以下是设置: DATABASES = { 'default': {
我只是按照这个程序: makemigrations (成功) migrate (成功) 复制另一台服务器上的应用程序(带有迁移文件) 在该服务器上创建一个新的空数据库 migrate (成功,它创建了
我想知道我们如何在 django 中处理数据库迁移,而生产中的站点在开发时我们停止服务器然后在数据库中进行更改然后重新运行服务器我认为这可能是一个愚蠢的问题但我自己学习并且不能提前弄清楚谢谢。 最佳答
我想在我的模型中向现有字段添加一些 db_index。我刚刚添加了 db_index=True到模型。 我在想我需要运行 python manage.py migrate将它们应用到数据库中。我的问题
我正在使用django,现在我将python文件从custom_fields重命名为fields并更改模型类和模型类正在使用来自 fields 文件的字段,但是当我运行 python manage.p
我的 makemigrations 命令有问题。 注意:到目前为止,我已经成功地进行了迁移,所以这不是我第一次尝试对该项目进行迁移。 我在 INSTALLED_APPS 中有我的项目。 问题:由于某种
Django 1.11。我最近将以下模块添加到 myapp.models: from django.db import models from ordered_model.models import
我正在尝试一个简单的模型继承: class Product(models.Model): creation_date = models.DateTimeField(auto_now_add=T
由于 windows10 初始化,我的所有 SQL 模式都被删除了。所以,我想用已经存在的 django 项目代码(有这么多行......)运行 makemigrations。但是“python ma
使用 Django 1.7,每当我执行 makemigrations 时,我都会对其中一个模型进行更改: (venv) >> python manage.py makemigrations myapp
我有一个 python2.7 django 项目(我知道,我在 20 世纪!),其中有一些模型。我需要重写 makemigrations,以便迁移文件名的格式为 0001.py、0002.py 等,而
我有一个 python2.7 django 项目(我知道,我在 20 世纪!),其中有一些模型。我需要重写 makemigrations,以便迁移文件名的格式为 0001.py、0002.py 等,而
我使用的如下,我定义了一个自定义 JSONField 类型并向其添加了一个自定义验证器类。 models.py json_ctn = JsonField(verbose_name=_('Json'),
我想迁移game.characters INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'd
我的问题是:调用manage makemigrations实际上做了什么? 我知道它会创建迁移文件,但是如何创建呢?它如何跟踪自上次迁移以来发生的变化?它是否直接将模型的当前状态与数据库进行比较?它是
我有一个用 Django 1.10.7 和 mysql 14.14 Distrib 5.5.54 构建的 django 项目 如果我这样做: $ python manage.py makemigrat
我错误地删除了路径 projectName/appName/migrations 下的所有 .py 文件,它包括: 0001_initial.py 0011_auto_20150918_0723.py
我是一名优秀的程序员,十分优秀!