gpt4 book ai didi

django - 您将如何创建 'manual' django迁移?

转载 作者:行者123 更新时间:2023-12-03 07:35:15 33 4
gpt4 key购买 nike

我发现我可以使用migrations.RunSQL('some sql')为django项目中的postgres数据库设置列的默认值。

我目前正在通过添加列,makemigrations,然后删除列,makemigrations,然后手动修改生成的迁移文件来进行此操作。

我尝试复制一个旧的迁移文件,然后删除旧的代码,以便仅运行新的sql并出现一些奇怪的错误。

CommandError: Conflicting migrations detected; multiple leaf nodes in the migration graph: (0067_auto_20180509_2327, 0068_auto_20180514_0707 in csmu).
To fix them run python manage.py makemigrations --merge

您将如何创建“手动” django迁移?

最佳答案

您可以通过运行以下命令来创建手动迁移:

python manage.py makemigrations --name migration_name app_ame --empty
app_name与您要添加迁移的项目中的应用相对应。请记住,Django同时管理项目和应用程序(一个项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以位于多个项目中。) --empty标志用于创建一个迁移文件,您必须在其中添加手动迁移。

例如,在一个项目中,您有一个名为 api的应用程序,该应用程序仅运行一个迁移文件 0001_initial.py:
python manage.py makemigrations api --name migration_example --empty

将在目录 0002_migration_example.py下创建一个名为 api/migrations/的文件,该文件如下所示:
# Generated by Django 2.2.10 on 2020-05-26 20:37

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('api', '0001_initial'),
]

operations = [
]

并且您应该在操作括号内添加 migrations.RunSQL('some sql').,例如:
    operations = [
migrations.RunSQL('some sql')
]

关于django - 您将如何创建 'manual' django迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50320989/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com