问题标签 [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.
python - Django 重命名模型。创建新的 django_content_type 而不是重命名旧记录
设置:
姜戈 1.7 | Postgres 9.x
假设我创建了一个TestGeneric
实例,将它与 a 关联Building
并保存它:
现在我重命名Buildings
为Building
并运行makemigrations
. 提示我Did you rename the app.Buildings model to Building? [y/N]
我选择是。然后我运行migrate
并得到:
无论我回答什么,Django 都会自动在django_content_type
其中创建一个新行building
作为名称和标签。有没有办法重命名,ContentType
这样我的所有 TestGeneric 行都不会被吹走?
python - 不断检测到 Django 1.7.2 迁移变化
下面我的模型似乎在运行时不断检测更改的变化makemigrations
。在带有 South 的 Django 1.6.4 中,情况并非如此。
您的模型具有尚未反映在迁移中的更改,因此不会应用。运行manage.py makemigrations
以进行新的迁移,然后重新运行manage.py migrate
以应用它们。
模型:
我通过注释掉 total_purchased 字段的验证器属性解决了这个问题。有没有办法解决这个问题而不删除验证器,同时仍然能够引用“total_purchased”验证器中的前一个字段“容量”?任何帮助,将不胜感激。
django - 如何引入唯一性和冲突数据?
我为我的网站编写了一个小 qna 脚本,为了防止用户开始讨论,我希望每个用户只能回复一次。
现在迁移给了我:
当然,独特性与现有数据发生冲突。我现在需要知道的是如何告诉迁移删除冲突的答案。一个愚蠢的解决方案,比如保留第一个找到的解决方案已经是一个很大的帮助。更好的是通过自定义函数比较冲突的 A 的方法。
我正在使用新的迁移系统运行 Django-1.7 - 而不是 South。
谢谢你的帮助!
django - 无法在迁移中使用 GenericForeignKey 创建模型实例
重要提示:这个问题不再相关。
在 Django 1.7 迁移中,我尝试使用以下代码以编程方式创建注释条目:
它会产生一个错误:
TypeError: 'content_object' is an invalid keyword argument for this function
但是,相同的代码(即Comment(content_object=comment.booking)
)在 shell 中执行时可以工作。
我尝试创建一个空白模型,new = Comment()
然后手动设置所有必要的字段,但即使我相应地设置content_type
和object_pk
字段,它们content_type
实际上并没有保存,我收到了django.db.utils.IntegrityError: null value in column "content_type_id" violates not-null constraint
知道如何在迁移中正确创建具有通用外键的模型吗?或者任何解决方法?
python - Django:迁移依赖于删除的 3rd-party 模块
在我的 django 项目中,我一直在使用django-taggit为模型添加标记功能。
迁移添加标签还将初始taggit迁移列为依赖项:
在稍后的某个时间点,我在所有地方都删除了 taggit,包括INSTALLED_APPS
.
问题是 django 无法解决属于taggit的迁移,并引发错误。
在这种情况下,首选的解决方案是什么?
我可以想到一个两步策略:
- 保持taggit直到
INSTALLED_APPS
所有运行项目的服务器都是最新的 - 之后进行壁球迁移,以便该字段不再显示,然后才从中删除taggit
INSTALLED_APPS
django - 迁移运行正确,但不创建新列(Django 1.7)
我想运行一些迁移。在我想运行我的网站之前,一切似乎都运行正常。缺少一列。我可以手动修复它,但我想了解我在运行迁移时犯的错误。
这是我的迁移文件的一部分,其中添加了该列:
这些是我正在运行的命令:
在这第一步中,创建列meta_title
如果我运行迁移,shell 输出:
在这一点上,我希望在数据库中创建 meta_title 列......但是什么也没发生......我确定我在正确的数据库中并且我的设置是正确的。因为如果我手动创建 meta_title 列,则网站运行时不会出现错误。
有人可以帮助我吗?
python - Django 1.7 makemigrations 将表重命名为 None
我不得不将几个模型从一个应用程序移动到另一个应用程序,并按照此答案https://stackoverflow.com/a/26472482/188614上的说明进行操作。
基本上我使用了CreateModel
由 生成的迁移python manage.py makemigrations
,将它们包装在里面state_operations
,并添加了'db_table'
带有旧表名称的元选项。
一切正常,模型new_app
正确使用旧表。
但是,如果我运行它,它会为每个表python manage.py makemigrations new_app
创建一个迁移,将它们重命名为,如下所示:AlterModelTable
None
这是一个错误,还是预期的行为?
django - 无法让 Django 1.7 迁移来检测对我的数据库的正确更改。
我有一个在 MySQL 数据库中运行大量数据的生产 Web 项目。我正在尝试通过对名为“enterlink”的应用程序进行一些更改来更新数据库。我在现有模型中制作了新元素并完全创建了新模型。在此迁移之前,自从最初运行 syncdb 来创建它以来,我从未接触过 db 的架构。当我运行:“python manage.py makemigrations enterlink”时,会出现以下输出(图片)。我的问题是,为什么会这样?数据库已经包含了它在图片中列出的所有模型,那么它为什么要注册这些模型列表呢?当我通过执行“python manage.py migrate”或“python manage.py migrate --fake enterlink”(再次图片)完成迁移时,我得到了显示的输出,但我的数据库架构与旧数据库相同,并且任何新代码都会产生错误。谁能告诉我可能是什么问题?我会非常感谢任何建议。这非常令人沮丧,因为我不确定我错过了什么。
django - Django 迁移更改字段类型
我对某些模型有 FK
我需要将其更改为 IntegerField 所以它看起来像
如何在不真正更改数据库中的任何内容的情况下添加新的迁移?
python - 如何使用 django 1.7.3/postgres 迁移在数据库中设置默认列值?
似乎列的默认值仅在 ORM 层上,实际上并未在数据库中设置默认值。同时,例如 ID 键在数据库中有一个默认修饰符,它告诉我可以这样做,但不知道怎么做?
示例代码:
创建下表:
有没有办法default current_timestamp
在created_at
修改器中设置迁移?如果没有,有没有办法传入原始 SQL 迁移?我需要它,因为数据库被其他进程(例如批处理)使用,我不想在应用层强制执行诸如默认值之类的东西。