问题标签 [makemigrations]

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 回答
1054 浏览

python - django makemigrations 无需用户输入即可重命名字段

我有一个名为oldName的 CharField 模型。我想将该字段重命名为newName

当我运行python manage.py makemigrations时,我收到一个确认请求“您是否将 model.oldName 重命名为 model.newName (a CharField)?[y/N]”

但是,我想在 docker 容器中运行整个东西,并且没有提供用户输入的规定。有没有办法强制迁移而不需要用户输入?

PS:我用 makemigrations 尝试了 --noinput选项。在这种情况下,不会应用迁移。

0 投票
2 回答
305 浏览

django - 名称错误:无法导入[型号名称]

我正在尝试通过外键将模型Post链接到模型Topic 。当我运行 makemigrations 命令时,它会引发导入错误,并说未定义名称“主题”。这可能是什么原因?它似乎确实被定义了。我几乎排除了这不是数据库中的问题。

有任何想法吗?我在这段代码中没有看到任何问题,我的 IDE 也没有,它识别了模型Topic

0 投票
1 回答
909 浏览

django - Django 1.10 - makemigrations 命令未检测到非托管模型的更改

在此先感谢您的帮助。在 mi 项目中,我有一个涉及从现有数据库生成的模型的应用程序。由于这些表由 DBA 管理,因此它们被保存为非托管模型。由于架构的更改,我们可能需要从 db 重新生成模型,因此我们为每个模型创建了替代代理模型,以将我们管理的部分与我们不管理的部分分离。下面你可以看到一个基于我们当前布局的示例。

该示例显示了一个生成模型与另一个生成模型的 FK,因此代理模型具有对非代理模型的引用。我已经阅读了此处指出的讨论并尝试了一些显示的方法,但是没有一个对我有用。所以现在我正在尝试更新生成的模型以指向代理模型,我认为这不会造成任何问题。

正如我所看到的,Django 为非托管模型生成了迁移,我认为 makemigration 会检测到该模型的 FK 中的更改。但是,当我运行manage.py makemigrations它显示未检测到任何更改。对于非托管模型,这是预期的迁移行为吗?

0 投票
2 回答
588 浏览

python - Django / Python-我应该在本地分支上运行makemigrations,还是只在master上运行?

我正在开发一个用 Python/Django 编写的项目,最近对其中一个models. 在进一步开发此新功能之前,我想测试我现在所做的更改,但我知道我需要在我所做的更改生效之前运行python manage.py makemigrations& 。python manage.py migratemodels

我正在一个单独的git分支上进行开发master,但我有点不确定在不同分支上运行迁移的最佳实践是什么(我对 Python/Django 和 Git 都比较陌生)。

在我的开发分支上运行并在那里测试它是否明智,makemigrations就像我一直在测试我迄今为止所做的错误修复一样,或者我是否需要master在运行之前合并我的开发分支makemigrations

我知道如果我确实在我的开发分支上运行迁移,master一旦我合并我的更改,我将需要再次运行它们,但我只是想知道这种方法是否有任何危险,或者我应该注意的事情?

0 投票
1 回答
332 浏览

django - Mezzanine/Django 1.10 迁移:数据库表与迁移无关

我正在使用夹层(Django 1.10)所以我看不到“ db.sqlite3

我搜索了与我类似的问题,并且提供的大多数解决方案都无效。

我创建了一个新模型,后来决定添加一个新字段。我做了“python manage.py makemigrations”,当我查看我的迁移文件夹时,它就在那里;新字段存在。现在,当我运行应用程序并查看管理员时,它给了我一个错误,它说“不存在这样的列”。因此,我认为,我的数据库没有与我拥有的迁移同步。

这就是我所做的: 1. 删除迁移文件夹中的所有内容并重新创建“ init .py”。

1.1跑了“ python manage.py makemigrations <app_name>

1.2 跑了“ python manage.py migrate <app_name>

1.3 跑了“ python manage.py runserver

我实际上可以将我的模型重命名为具有相同字段的不同名称,但是,有时 Django 会给出错误,例如“不存在这样的表”。这样做也很乏味,因为如果我重命名我的模型,我必须在我导入模型的每个文件中重命名它,例如 admin.py、forms.py、views.py 等。

我听说过 South,但它不适用于 Django 1.10。

请帮忙。谢谢!

0 投票
1 回答
57 浏览

python - Django makemigrations 问题

我难住了。我有一个自定义模型字段类,它查找两个参数:app_name 和 file_dir。

在我的模型定义中,我有这个:

getAppName() 是:

自定义字段定义为:

我删除了迁移文件夹中的所有内容,除了init .py。

在运行 makemigrations 时,它会抛出一个 KeyError,抱怨 'app_name' 不在 kwargs 中。

但是,请注意字段init方法中对 print() 的调用。这成功打印了 app_name。KeyError 紧随其后。init函数是否被调用了两次?因此在 'app_name 从 kwargs 中弹出后抛出错误?我该如何解决这个问题?如果我在 pop() 方法中为 app_name 提供默认值,这可行,但我希望它在 kwargs 中不存在 app_name(或 file_dir)时出错。

0 投票
1 回答
2008 浏览

django - 移民许可被拒绝

我想我遇到了一个大问题。我不得不在我的 django 应用程序中删除迁移目录,我想当我运行python manage.py makemigrations该目录时会被创建回来,但是我得到了一个错误

django.db.migrations.graph.NodeNotFoundError:迁移 shoppingcart.0001_initial 依赖项引用不存在的父节点(u'student',u'0001_initial')

我之后所做的是重新创建迁移目录并将所有迁移文件放入并运行makemigrations,但我遇到了另一个错误

IOError:[Errno 13] 权限被拒绝:u'/edx/app/edxapp/edx-platform/common/djangoapps/student/migrations/0007_auto_20170427_1816.py'

0 投票
1 回答
436 浏览

python - Django makemigrations 在heroku中失败

我正在尝试将 Django (1.10.6) 应用程序部署到 Heroku,运行时 Python 3.6.1。该应用程序成功运行(除了未创建表的事实),但是在尝试运行 makemigrations 时出现以下错误:

设置.py

我正在使用sqlite。

0 投票
2 回答
1932 浏览

python - 运行makemigrations django后mysql格式错误的数据包错误

我们遇到的问题是:我们已经成功运行了 manage.py makemigrations 和 manage.py migrate,之后我们开始收到以下错误:

并不是每次我们运行 makemigrations 时都会出现这个问题。
它是随机出现的,但一旦出现它就会粘住,我们不知道为什么会发生这种情况。有人可以帮助我们解决这个问题并解释为什么会发生这种情况。

应用程序中使用的包:

0 投票
1 回答
83 浏览

django - 执行 makemigrations/migrate 时“PyCharm 无法检查以下文件是否已更新”

当我使用 PyCharm 的 manage.py 终端进行makemigrationsmigrate时,我收到以下警告消息:

PyCharm can't check if the following file been updated: [filepath]

对于位于我的webpackbabel-preset-es2015文件夹中的一百个文件,在我的static/node_modules文件夹中

该命令执行正确,但我想摆脱终端中的这数百个红色警告。特别是因为我认为迁移需要更长的时间才能执行,因为我有这些。

我可以以某种方式告诉 PyCharm 停止检查我的node_modules甚至静态文件夹吗?