已删除的迁移文件-如何在不丢失数据的情况下进行迁移
Deleted migration files- how to makemigrations without losing data
我更改了模型class上的一个字段(它没有classes指向到它,只有一个外键指向它) .不知何故,这塞满了我的迁移,它一直说 "django.db.migrations.graph.NodeNotFoundError:" 正在寻找不存在的迁移文件。
我不小心删除了 'migrations' 文件夹中的几个文件。
我的数据库包含很多数据,我不想破坏它。
如果我这样做,我会丢失任何数据吗:
去掉最开始引起问题的table(psql,\d,DROP TABLEtablename)
删除我所有的迁移文件
回复运行迁移从何开始?
./manage.py makemigrations
./manage.py 迁移
谁能推荐另一种解决方法?
您不是在使用 git 来取回您的迁移文件吗?如果没有,立即开始安装并使用它
我建议:
- 先backup/dump你的数据库,以防出现问题
- 删除所有迁移
- psql 中的空迁移table
- 致电
makemigrations
- 致电
migrate --fake-initial
清空 django_migrations table:
delete from django_migrations;
删除项目中每个应用程序的迁移文件夹中的所有文件。
重置 "built-in" 应用程序的迁移:
python manage.py migrate --fake
为每个应用程序创建初始迁移:
python manage.py makemigrations your_app_name
最后一步是创建假初始迁移:
python manage.py migrate --fake-initial
看这里https://micropyramid.com/blog/how-to-create-initial-django-migrations-for-existing-schema/
我更改了模型class上的一个字段(它没有classes指向到它,只有一个外键指向它) .不知何故,这塞满了我的迁移,它一直说 "django.db.migrations.graph.NodeNotFoundError:" 正在寻找不存在的迁移文件。
我不小心删除了 'migrations' 文件夹中的几个文件。
我的数据库包含很多数据,我不想破坏它。
如果我这样做,我会丢失任何数据吗:
去掉最开始引起问题的table(psql,\d,DROP TABLEtablename)
删除我所有的迁移文件
回复运行迁移从何开始?
./manage.py makemigrations
./manage.py 迁移
谁能推荐另一种解决方法?
您不是在使用 git 来取回您的迁移文件吗?如果没有,立即开始安装并使用它
我建议:
- 先backup/dump你的数据库,以防出现问题
- 删除所有迁移
- psql 中的空迁移table
- 致电
makemigrations
- 致电
migrate --fake-initial
清空 django_migrations table:
delete from django_migrations;
删除项目中每个应用程序的迁移文件夹中的所有文件。
重置 "built-in" 应用程序的迁移:
python manage.py migrate --fake
为每个应用程序创建初始迁移:
python manage.py makemigrations your_app_name
最后一步是创建假初始迁移:
python manage.py migrate --fake-initial
看这里https://micropyramid.com/blog/how-to-create-initial-django-migrations-for-existing-schema/