Полный отказ от ответственности, в некоторых случаях это разрушительная операция, и я в основном использую ее для ремиграции частей системы, не затрагивая БД.
Вы пробовали сделать это через стол django_migrations
? Просто удалите строки, которые сопоставляются с меткой приложения и именами миграции, о которых идет речь, и удалите эти строки.
+----+-----------------------+----------------------------------------------------------+---------------------+
| id | app | name | applied |
+----+-----------------------+----------------------------------------------------------+---------------------+
| 1 | contenttypes | 0001_initial | 2015-03-07 16:32 |
| 30 | homepage | 0001_initial | 2015-04-02 13:30:44 |
| 31 | homepage | 0002_auto_20150408_1751 | 2015-04-08 12:24:55 |
| 32 | homepage | 0003_remove_mappinghomepagemoduleinventory_inventoryinfo | 2015-04-09 08:09:59 |
+----+-----------------------+----------------------------------------------------------+---------------------+
Так что теперь, если я хочу, чтобы удалить homepage
, я могу просто удалить строку 30, 31, 32.
Конечно, так как вы слишком упали таблицы, вы должны изменить django_content_type
тоже:
+----+----------------------------------------+-----------------------+--------------------------------------+
| id | name | app_label | model |
+----+----------------------------------------+-----------------------+--------------------------------------+
| 1 | content type | contenttypes | contenttype |
| 2 | session | sessions | session |
| 3 | site | sites | site |
| 92 | master_homepagemodule_extrafields | homepage | masterhomepagemoduleextrafields |
| 93 | mapping_homepagemodule_inventory | homepage | mappinghomepagemoduleinventory |
| 94 | master_homepagemodule_inventoryfields | homepage | masterhomepagemoduleinventoryfields |
| 95 | mapping_homepagemodule_inventoryfields | homepage | mappinghomepagemoduleinventoryfields |
| 96 | master_homepagemodule | homepage | masterhomepagemodule |
| 97 | mapping_homepagemodule_extrafields | homepage | mappinghomepagemoduleextrafields |
+----+----------------------------------------+-----------------------+--------------------------------------+
Так что теперь вам нужно будет удалить таблицы, необходимые для ремиграции, путем сброса строк для этих таблиц.
Я использовал это, когда время было мало, и нам нужно было быстрое грязное исправление или когда играли в процессе развития.
Надеюсь, это поможет вам!
Разработчики Django действительно испортили то, что раньше было простым «syncdb». –