gpt4 book ai didi

Django 迁移不会更新我的数据库

转载 作者:行者123 更新时间:2023-12-01 22:25:35 25 4
gpt4 key购买 nike

从现有数据库开始,我想更新它的架构。我改变了我的一个模型,然后运行

python manage.py makemigrations myapp

创建迁移,正确定义新表和列。示例输出:

Migrations for 'myapp':
0001_initial.py:
- Create model Foo
- Add field Bar
- ...

然后我应用迁移:

python manage.py migrate --database mydb

我得到这个输出:

Operations to perform:
Apply all migrations: admin, myapp, contenttypes, sessions, auth
Running migrations:
Rendering model states... DONE
Applying admin.0002_logentry_remove_auto_add... OK
Applying auth.0007_alter_validators_add_error_messages... OK

这似乎奏效了。 Git 告诉我“mydb”对应的sqlite 文件已经改变。但是,它并没有在里面包含我的新表和列,它只是删除了内容,留下了带有旧模式的空表。

我做错了什么?

最佳答案

如果您有一个未应用迁移的遗留数据库,您应该创建初始迁移而不进行任何更改。这意味着如果你改变了“models.py”将它恢复到它的原始状态,然后运行:

python manage.py makemigrations myapp

然后运行“假”迁移

python manage.py migrate --database mydb --fake-initial

之后您可以修改“models.py”并使用正常的迁移。

关于Django 迁移不会更新我的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35434124/

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