Django删除了迁移目录

sam*_*x73 3 django database-migration

尝试更新代码时,在我的项目目录中,由于修改了模型并在使用时python manage.py makemigrations收到以下消息,所以我不小心删除了应用程序的migrations文件夹:

Operations to perform:
    Apply all migrations: app_label
Running migrations:
   No migrations to apply.
Run Code Online (Sandbox Code Playgroud)

我已经在迁移之前运行了它 python manage.py makemigrations app_label

小智 13

只需在应用程序目录中创建名为“迁移”的新目录即可。然后在该文件夹内创建名为 的空文件夹__pycache__和一个名为 的空文件__init__.py。然后进行迁移并迁移


rra*_*nza 5

您可以仅将迁移重置为初始迁移migrate并重新开始。这不会删除数据库中的数据,而是会重置对迁移的跟踪。如果所有数据库都已迁移到同一级别,则可以重新开始迁移跟踪。

这里有一个StackOverflow问题已经解决了:

如何在Django 1.7中重置迁移?

简而言之,

./manage.py migrate --fake <app-name> zero
Run Code Online (Sandbox Code Playgroud)

这会将跟踪重置为您的初始迁移之前。

然后,

./manage.py makemigrations <app-name>
./manage.py migrate <app-name>
Run Code Online (Sandbox Code Playgroud)

它将重新创建并应用初始迁移。

与往常一样,如果您的数据很重要,请首先进行备份。