我的旧项目出现 Django 1.7 迁移问题

     2023-02-24     233

关键词:

【中文标题】我的旧项目出现 Django 1.7 迁移问题【英文标题】:Django 1.7 Migrations issue with my old project 【发布时间】:2015-01-02 12:54:56 【问题描述】:

我有一个 django 1.5 应用程序,现在我将它迁移到 django 1.7 并且应用程序在旧数据库上运行良好。但现在我想使用 django 1.7 为该应用创建迁移。

我删除了旧的迁移,只保留了带有 __ init__ 文件的迁移文件夹

然后我跑了./manage.py makemigrations

在运行 ./manage.py migrate 时会出现一些错误。

django.db.utils.ProgrammingError: relation "django_site" does not exist
LINE 1: SELECT (1) AS "a" FROM "django_site" LIMIT 1

我已将 django_sites 添加到已安装的应用程序中。

在更新到本机迁移时,是否有任何特定的方式来创建/应用迁移?

【问题讨论】:

【参考方案1】:

您有一个依赖于 django.contrib.site 的迁移,但相关的表不可用。 你可以

在 INSTALLED_APPS 中将 django.contrib.site 向上移动 检查您的迁移的属性dependencies

无论如何,我认为您的问题在于某些字段的默认值。

如果您没有找到相关的应用程序,您可以:

    禁用 INSTALLED_APPS 中的所有应用程序 启用第一个 运行 makemigrations 删除所有迁移 启用下一个应用程序 运行 makemigrations ...重复步骤 4..6,直到出现错误

【讨论】:

【参考方案2】:

来自the documentation:

如果您已经使用 South 创建了预先存在的迁移,那么使用 django.db.migrations 的升级过程非常简单:

确保所有安装都与它们的迁移完全同步。 从 INSTALLED_APPS 中删除“南”。 删除所有(编号的)迁移文件,但不要删除目录或 init.py - 确保也删除 .pyc 文件。 运行 python manage.py makemigrations。 Django 应该看到空的迁移目录并以新格式进行新的初始迁移。 运行 python manage.py 迁移。 Django 将看到初始迁移的表已经存在,并将它们标记为已应用而不运行它们。

我怀疑你忘了

find . -iname "*.pyc" | xargs rm

【讨论】:

Django 1.7 - 创建初始迁移

...应该这样做:$pythonmanage.pymakemigrationsmy_app但是,如果我在我的项目中这样做,我会得到:在应用“my_app”中未检测到更改即使my_app还没有迁移-my_app 查看详情

Django 1.7 中的迁移

...删除模型等)传播到数据库架构中和“迁移”命令。我在我的应用程序中的一个模型中添加了一个“年龄”字段。country=models.CharField(max_len 查看详情

makemigrations 和升级到 Django 1.7 的问题

...dingtoDjango1.7【发布时间】:2015-05-1211:57:08【问题描述】:我的团队有一个项目在Django1.6上与South一起运行,我们刚刚升级到1.7。我按照指南,清除了旧的South迁移,运行makemigrations并迁移,最终让我的服务器运行,因此我将更改推... 查看详情

Django 1.7 + Django CMS - 从我的仓库中删除迁移文件或在仓库中包含 virtualenv?

】Django1.7+DjangoCMS-从我的仓库中删除迁移文件或在仓库中包含virtualenv?【英文标题】:Django1.7+DjangoCMS-dropmigrationfilesfrommyrepoorincludevirtualenvinrepo?【发布时间】:2015-02-2423:33:36【问题描述】:我正在使用git对Django1.7+DjangoCMS3.0.6项目... 查看详情

从 1.5 迁移到 1.7 时的单元测试警告

...5to1.7【发布时间】:2015-01-0210:53:13【问题描述】:我已将我的项目从Django1.5.1迁移到1.7。我已从已安装的应用程序中删除了South。但是当我执行runserver命令时,我收到以下警告,即使我没有在项目中编写任何单元测试。某些项目... 查看详情

测试中的模型 - Django 1.7 问题

...布时间】:2014-10-2910:16:27【问题描述】:我正在尝试移植我的项目以使用Django1.7。一切都很好,除了1件事。测试文件夹中的模型。Django1.7新迁移在内部运行migrate命令。在运行syncdb之前。这意味着如果模型不包含在迁移中-它不会... 查看详情

在 Django 1.7 迁移之前运行 South 迁移的推荐方法是啥?

...?【发布时间】:2014-10-2919:34:28【问题描述】:我有几个项目有很多South迁移,包括包含大量需要以特定顺序运行的自定义SQL的项目。升级到Dj 查看详情

Django 1.7 迁移不会重新创建删除的表,为啥?

...4-12-3001:11:26【问题描述】:使用Django1.7迁移。我不小心在我的数据库中删除了一个表。我假设通过再次运行迁移,这将重新创建表,但没有,Django声明“没有要应用的迁移”。如何让 查看详情

从 South 迁移到 Django 1.7 迁移:可交换依赖项

...:2015-04-1209:04:06【问题描述】:我有一个用Django1.6编写的项目,它使用南迁移,我试图将它移到Django1.7。所以我从here指示的说明开始。从INSTALLED_APPS中删除south。删除了旧的迁移文件。跑./ 查看详情

无法将 Django 从 1.7 迁移到 1.8

....7升级到1.8时(最终目标是将1.4迁移到1.11LTS)我被要求从我的INSTALLED_APPS中删除SOUTH很好,但是我明白了:raiseAppRegistryNotReady("Modelsaren\'tloadedyet.")dj 查看详情

Django 1.7 - makemigrations 为非托管模型创建迁移

...dmodel【发布时间】:2014-12-2406:27:03【问题描述】:我正在我的应用程序中创建一些动态Django模型,除了迁移系统之外,一切似乎都按预期工作。如果我创建一个动态Django模型并设置managed=False,Django的ma 查看详情

使用 Django 1.7 迁移删除应用程序

...么。例如,如果我安装了一个新包,我将应用程序添加到我的settings.py并执行manage.pymakemigrations和manage.pymigrate;当我决定不想使用这个 查看详情

具有默认值的外键上的 Django 1.7 迁移错误

...lue【发布时间】:2014-11-1922:56:07【问题描述】:我在测试我的应用程序时遇到问题,包括在具有默认值的ForeignKey模型字段上迁移(参见下面的示例,模型RuleSet中的字段mode)。我不知道这是Django1.7测试迁移中的错误还是我做错了... 查看详情

在 Heroku 上部署时出现 Django 1.7 迁移错误

...:2015-03-3123:03:45【问题描述】:这里是Python和Django新手。我的部分代码基于来自CodingforEntrepreneurs的视频教程LaunchwithCode。将Python2.7.5与Django1.7.4结合使用并尝试在Heroku 查看详情

Django 的核心迁移工具与 Django 数据迁移的 South

...发布时间】:2014-01-1203:27:11【问题描述】:我目前没有在我的Django项目中使用迁移,但我打算很快使用。我知道South是事实上的工具,我打算使用它,但后来我在Django项目网站上读到,开发版本(我猜将作为1.7发布)有一个核心... 查看详情

Django 1.7 中的 Django-migrations 检测模型更改,但不会在迁移时应用它们

...对Django应用程序中模型的更改(postgres9.1-如果您需要有关我的环境 查看详情

在迁移中获取模型 ContentType - Django 1.7

】在迁移中获取模型ContentType-Django1.7【英文标题】:GettingmodelContentTypeinmigration-Django1.7【发布时间】:2014-12-1509:18:02【问题描述】:我有一个更新一些权限的数据迁移。我知道迁移中的权限存在一些已知问题,并且我能够通过在... 查看详情

Django 1.7(显然)没有在 manage.py 测试中运行迁移

...发布时间】:2015-02-0214:01:06【问题描述】:在处理Django1.7项目时,我需要向现有模型添加一个字段。我添加了以下内容:bairro=models.CharField(max_length=200)然后我运行了两个命令:py 查看详情