问题标签 [django-migrations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8132 浏览

python - 在迁移中指定应用依赖项

我正在尝试在 Django 1.7 中添加初始数据,并且我读过建议使用数据迁移。

我已经正确创建了名为“0001_groups”的迁移文件,我在其中创建了几个contrib.auth组和权限。

问题是它在auth迁移运行之前运行。

我去找出最后一次迁移的auth应用程序的名称是什么,它被称为0005_alter_user_last_login_null.py. 所以我尝试了:

但我得到:

KeyError:u“迁移 appname.0001_groups 依赖项引用不存在的父节点('auth','0005_alter_user_last_login_null')”

我用谷歌搜索了那个错误,它总是链接到 11 个月前已修复的 Django 错误。

如何正确指定auth应用程序依赖项?

0 投票
4 回答
8279 浏览

python - Django - 无法为具有动态 upload_to 值的 ImageField 创建迁移

我刚刚将我的应用程序升级到 1.7(实际上仍在尝试)。

这就是我在models.py中的内容:

当我尝试时makemigrations,它会抛出:

0 投票
16 回答
192150 浏览

python - Django:OperationalError 没有这样的表

我正在使用 Django-CMS 的 Django 项目中构建一个相当简单的应用程序研究。(这是我对项目/应用程序的第一次尝试。)它的主要目的是存储各种智力资产(即研究人员撰写的文章、书籍等)。

问题是,当我将浏览器指向时,/research/我收到一条错误消息,指出table 'research_journal' doesn't exist ("no such table").

我正在使用带有 sqlite3 数据库的 Djnago 1.6.5。

python manage.py sql research收益率:

我已经运行python manage.py migrate research并得到:

我已经运行python manage.py syncdb并得到以下信息:

这是models.py

这是我的views.py(请注意,我通过渲染传递了两个对象,忽略我尚未在整个交易中包含类 Books 的事实):

这是应用程序的url.py

这是index.html模板:

以防万一,这是我的cms_app.py

0 投票
2 回答
3899 浏览

python - Django 1.7 - makemigrations 未检测到更改 - 托管模型

我刚刚在我的虚拟环境中安装了 django 1.7。

然后我手动创建了以下文件:

所以我有一个设置文件service_bus/django_settings.pyservice_bus应用程序。

然后我在bash上做了:

然后我只是尝试运行 makemigrations,但它说没有检测到任何更改。

在我所有的模型中,我都有类似的东西

我会错过什么?

0 投票
2 回答
1621 浏览

django - 如何在 Django 1.7+ 中创建每个项目的 initial_data 固定装置

在 Django 1.7 之前,我曾经在设置中定义每个项目的fixtures目录:

并使用它来放置我的固定装置,以存储整个项目必不可少initial_data.json的默认组。这对我来说效果很好,因为我可以通过将每个项目数据与特定于应用程序的数据分开来保持设计整洁。

现在在 Django 1.7 中,initial_datafixtures 已被弃用,建议数据迁移与应用程序的模式迁移一起包括在内;没有为全球每个项目的初始数据留下明显的选择。

此外,新的迁移框架会在为兼容的应用程序(包括应用程序)执行迁移之前安装所有旧的初始数据固定装置django.contrib.auth。此行为会导致包含默认组的我的夹具安装失败,因为该auth_group表尚不存在于数据库中。

关于如何(优雅地)在所有迁移之后或至少在身份验证应用程序迁移之后运行固定装置的任何建议?或任何其他想法来解决这个问题?我发现固定装置是提供初始数据的好方法,并且希望有一种简单而干净的方式来声明它们以进行自动安装。新的RunPython实在是太笨重了,我认为它在大多数情况下都是矫枉过正的;它似乎仅适用于每个应用程序的迁移。

0 投票
3 回答
109773 浏览

django - django 1.7 迁移出现错误“表已存在”

我正在尝试应用迁移,但出现错误:

django.db.utils.OperationalError: (1050, "表 'customers_customer' 已经存在")

我通过发出以下命令得到这个:

我的客户表已经存在,那么我该怎么做才能让迁移知道这一点,而不是出错,并运行我对模型的修改?

我在本地环境中使用本地数据库运行它,没有问题。当我将我的数据库指向生产并在migrate上面运行时,我得到了这个错误。

0 投票
1 回答
1210 浏览

django - django 1.7 在现有表上进行迁移

我想将 Django 1.7 用于一个新项目。我已经有很多记录的数据库。

在许多 Django 教程中,它演示了如何从一个全新的项目中使用迁移系统。

在我的情况下,使用 django-admin startapptodo 并将使用一个名为notesnote. 我使用 inspectdb 转储notesnote类并将其写入todo/models.py

进而

todo/migrations/0001_initial.py 然后生成

做一个假迁移(因为表已经存在)。

然后,如果我想修改表格的字段,说添加一个“类别”字段

然后通过以下方式生成 0002 迁移差异:

但是,当我进行迁移时

我得到如下错误:

django.db.utils.OperationalError:没有这样的表:todo_notesnote

似乎它在现有表的前面添加了应用程序的名称。我应该执行哪些步骤来为现有表进行可用迁移?

0 投票
1 回答
717 浏览

python - 在 Django 1.7 中序列化类方法

当我尝试manage.py makemigrations在 Django 1.7 上运行时,出现以下错误:

get_default因此,在 上定义的方法似乎存在问题JobConfiguration,其定义在下面重复:

按照错误消息中提供的链接,序列化“类引用”似乎是受支持的功能。

“类引用”是否与 a 相同@classmethod

我如何将“类引用”放在“模块的顶级范围”中?

为什么必须通过迁移来跟踪方法?我假设迁移是针对数据库模式的,它只跟踪存储的数据类型,而不是类使用的方法类型。

值得注意的是:将 的定义更改get_default为下面重复的静态方法可以解决问题,但代价是必须对JobConfiguration类名进行硬编码。

JobConfiguration.get_default(一些上下文:这个方法在 a中被引用,models.OneToOneField(JobConfiguration, default=JobConfiguration.get_default)效果是为每个创建的这些字段创建一个新的 JobConfiguration。)

0 投票
1 回答
1519 浏览

django-testing - 为什么迁移在测试时失败,但在迁移时没有?

我正在使用 Django==1.7,并且有四个应用程序:

应用程序设置是这样的:

数据库设置是:

我的应用程序有迁移和测试:

许多文件被省略以缩小问题范围(如果需要,我将使用更多文件扩展问题),models.py例如views.py.

的内容0002_install_data.py是:

如果我运行manage.py migrate安装数据库,一切都会按预期工作。

如果我运行manage.py test测试,第一步将是测试数据库安装。奇怪的事情发生了:

  • 要执行的第一个迁移是 0002_install_data。永远不会创建其他表(例如 auth 表、geo 表、游戏表、fandjango 表……),并且people不会运行迁移 0001_initial in。
  • 由于这样的原因,出现依赖错误0002_install_data(它说不0001_initial存在)。

    /li>

为什么会发生这种情况?为什么该test命令不能正确安排应用程序迁移?(这不会发生在manage.py migrate)。

0 投票
1 回答
241 浏览

django - Django 1.7 迁移中的未定义类

我遇到了旧迁移包含对不再定义的类甚至模块的引用的问题。我解决这些问题的最佳方法是什么?

我可以通过删除这些引用来消除错误消息,但是如果我破坏了迁移怎么办?

考虑到我显然要编辑它,我也是唯一一个认为 Django 1.7 迁移实际上导入我的部分代码库有点疯狂的人吗?

错误信息示例:

在这种情况下,UserPersonMixin 是一个抽象基类,这个模型曾经继承自它,但我最近在重组时丢弃了它。