安装和卸载软件包后如何清理Django数据库?

时间:2014-01-20 01:42:19

标签: django django-models django-south django-syncdb

我刚刚了解到在Django中安装任何软件包后我应该更加小心。这是我应该在迁移之前转储我的数据库(或者只是复制数据库文件),或者在安装新插件时同步它。

现在,已经很晚了。我已经安装并删除了几个包(pip install packagepython manage.py migrate),我想清理或清除我的数据库,所以我摆脱了不再使用的表和字段。

有没有办法搜索和/或删除INSTALLED_APPS不再使用的字段和表格?

似乎可以迭代所有INSTALLED_APPS models.py文件,并将它们与数据库的当前状态进行比较。另一个选择是生成一个全新的数据库并将其与旧数据库进行比较。

1 个答案:

答案 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)