Обратная миграция с Django South



хорошо, так что это кажется очень глупой вещью, чтобы спросить, и я уверен, что я что-то упускаю где-то.



Как вы выполняете обратную миграцию, используя Юг на Django?



Итак, я изменил свои модели, создал миграцию с schemamigration выполнить миграцию с migrate, и теперь я понимаю, что это не совсем то, что я хотел, и я хочу, чтобы это было раньше.



за исключением ручного редактирования таблиц БД и удаления файлов миграции, как я должен идти откат миграции назад? Я нахожу ссылки на обратные миграции с использованием юга через Google, но еще не нашел для него надежного примера кода.



кто может помочь?

656   3  

3 ответов:

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

ваше приложение должно иметь каталог миграции, с файлами в нем с именем like

0000_initial.py
0001_added_some_fields.py
0002_added_some_more_fields.py
0003_deleted_some_stuff.py

обычно, когда вы запускаете ./manage.py migrate your_app, Юг выполняет все новые миграции, по порядку. (Он смотрит на таблицы базы данных, чтобы решить, какие из них "новые").

однако вы также можете указать любую миграцию по номеру, и South перенесет вашу базу данных, либо вперед, либо назад, чтобы довести его до этого момента. Итак, с приведенными выше примерами файлов, если вы уже мигрировали до 0003, и вы хотели запустить 0003 в обратном порядке (эффективно отменить его), вы бы запустили

./manage.py migrate your_app 0002

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

на всякий случай кто-то (как я) задавался вопросом, как миграция назад от начального (0001):

django-admin.py migrate some_app zero

выход:

Running migrations for some_app:
 - Migrating backwards to zero state.
 < some_app:0001_initial

"ноль" - это особое состояние перед любой миграцией.

Ссылка:http://south.aeracode.org/docs/commands.html

добавить имя миграции в конце параметры:

./manage.py migrate app-name 00xx-migration-name

Comments

    Ничего не найдено.