删除的迁移文件 - 如何在不丢失数据的情况下进行迁移

Yco*_*con 4 django postgresql django-models django-migrations

我更改了模型类上的一个字段(没有类指向,只有一个外键指向它)。不知何故,这塞满了我的迁移,并且一直显示“django.db.migrations.graph.NodeNotFoundError:”寻找不存在的迁移文件。

我不小心删除了“迁移”文件夹中的几个文件。

我的数据库包含大量数据,我不想破坏它。

如果我执行以下操作,我会丢失任何数据吗:

  1. 删除首先导致问题的表(psql、\d、DROP TABLE 表名)

  2. 删除我所有的迁移文件

  3. 从头开始重新运行迁移?

    ./manage.py makemigrations

    ./manage.py 迁移

谁能推荐另一种方法来解决这个问题?

这是回溯: http: //dpaste.com/0Y1YDXS

小智 5

  1. 清空 django_migrations 表:

    delete from django_migrations;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除项目的每个应用程序的迁移文件夹中的所有文件。

  3. 重置“内置”应用程序的迁移:

    python manage.py migrate --fake
    
    Run Code Online (Sandbox Code Playgroud)
  4. 为每个应用程序创建初始迁移:

    python manage.py makemigrations your_app_name
    
    Run Code Online (Sandbox Code Playgroud)
  5. 最后一步是创建假初始迁移:

    python manage.py migrate --fake-initial
    
    Run Code Online (Sandbox Code Playgroud)

请参阅此处https://micropyramid.com/blog/how-to-create-initial-django-migrations-for-existing-schema/