我刚刚了解到在Django中安装任何软件包后我应该更加小心。这是我应该在迁移之前转储我的数据库(或者只是复制数据库文件),或者在安装新插件时同步它。
现在,已经很晚了。我已经安装并删除了几个包(pip install package
和python manage.py migrate
),我想清理或清除我的数据库,所以我摆脱了不再使用的表和字段。
有没有办法搜索和/或删除INSTALLED_APPS
不再使用的字段和表格?
似乎可以迭代所有INSTALLED_APPS models.py
文件,并将它们与数据库的当前状态进行比较。另一个选择是生成一个全新的数据库并将其与旧数据库进行比较。
答案 0 :(得分:1)
我认为你有两个选择:
1 - 使用sqlclear django命令。
$ python manage.py sqlclear appToUninstall > droppingApp.sql
BEGIN;
DROP TABLE "appToUninstall_table";
...
COMMIT;
并在数据库中手动执行查询。
2 - 也许检查South API并创建自己的Django命令
from south.db import db
...
db.delete_table(Table, cascade=True)