使用Django 1.7迁移删除应用程序

die*_*pau 14 django django-migrations

我想知道什么是使用Django迁移删除所删除应用程序的所有表的最简洁方法.例如,如果我安装了一个新软件包,我将应用程序添加到我的settings.py中,然后执行manage.py makemigrations和manage.py migrate; 当我决定我不想使用这个包并将其从我的settings.py中删除时,命令manage.py makemigrations将告诉我"未检测到任何更改",因此manage.py migrate将无能为力,但我需要删除此删除的应用程序创建的表.

我期望Django迁移处理这个,所以如果我删除一个应用程序,它也会创建迁移以删除所有必要的表.

ara*_*ian 11

你必须要小心这个,确保你理解当你这样做时正在逆转的操作,但这样的事情应该有效:

manage.py migrate <app_name> zero

显然,在将其从设置中删除之前必须执行此操作,因此可以发现迁移.

编辑:这已经慢慢收到了一些赞成票 - 我想我会指示每个人找到相应的文件,特别是:

使用名称零可以取消应用应用的所有迁移.


Clo*_*ans 3

首先,注释掉应用程序的 models.py 中的所有类。然后,像平常一样创建一个新的迁移,这将删除应用程序的所有表,并运行它。最后,从代码库中删除整个应用程序以及对其的所有引用。