Как я могу удалить таблицы и syncdb только для одного приложения в моем проекте Django? - PullRequest
1 голос
/ 19 сентября 2011

У меня есть приложение Django, развернутое в DjangoZoom.Люди регистрируются, поэтому в этой базе данных есть пользователи.

Я хочу реструктурировать базу данных одного из моих приложений в рамках проекта.Мой план состоял в том, чтобы удалить все таблицы, а затем сделать syncdb, чтобы установить новую структуру.Затем я добавил бы все содержимое сайта обратно, установив локально созданные осветительные приборы в производственную базу данных.

Проблема в том, что я потеряю все эти пользовательские данные с планом.Как мне просто удалить соответствующие таблицы (те, для которых я могу повторно загрузить содержимое с помощью приборов) и оставить нетронутыми таблицы аутентификации?Обратите внимание, что в DjangoZoom у меня есть возможность только запускать команды manage.py с --noinput, и я не могу получить доступ к базе данных напрямую.Кроме того, мой проект в Django 1.3, поэтому использование manage.py reset app_name устарело.

Полагаю, я мог бы выполнить миграцию на юг для этого, но это относительно простое изменение, и поскольку у меня есть все данные в фиксаторахв любом случае это не стоит того.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

В итоге я реализовал юг для миграции, чтобы вносить изменения в таблицы на DjangoZoom вместо того, чтобы пытаться очистить таблицы для некоторых приложений.

Изменения были легко внесены в существующую базу данных с помощью южной schemamigration --auto, чтобы сгенерировать миграцию для изменений. Кроме того, миграция позволила мне сохранить большую часть контента в моем проекте.

0 голосов
/ 19 сентября 2011

Просто сделай:

./manage.py reset appname
...