Подтвердить что ты не робот

Зачем использовать Юг во время первоначальной разработки?

Мне интересно узнать о преимуществах использования (django) South во время тяжелой начальной разработки проекта.

На ранних этапах разработки обычно происходит быстрое изменение модели, частые ветвления и слияние (особенно, если вы используете стратегию развития, такую ​​как git -flow) и очень мало, если таковые имеются, сохраненные данные. Почему вы хотите сохранить эти первоначальные изменения модели? Каковы преимущества/недостатки?

У меня создается впечатление, что вам легче подождать, пока разработка не опустится (и у вас есть данные, которые вы действительно хотите сохранить), прежде чем активировать Юг и выполнить начальную миграцию. Можно ли это сделать? Вы хотите это сделать?

4b9b3361

Ответ 1

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

Если вы работаете в одиночку (и не беспокоитесь о развертывании), это не проблема, и вы можете подождать до последнего момента, чтобы создать перенос.

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

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

Если у меня есть куча миграций схемы, которые я добавил, иногда я объединю их (откат и удаление и создание новой миграции) в один перенос. Но, как правило, количество миграций меня не беспокоит, потому что они ничего не стоят мне.

Ответ 2

Я нашел Юг столь же полезным во время разработки, как и после, именно потому, что поля таблицы меняются так часто. Это довольно неприятно, когда нужно отбросить таблицу и заново создать ее с помощью syncdb, чтобы добавить одно поле, особенно если у вас есть какие-либо тестовые данные. (Вы также можете просто изменить таблицу непосредственно в своей СУБД, но тогда вы должны быть осторожны, чтобы использовать тот же тип поля, который ожидает Django, соответствующим образом установите атрибуты, такие как ON DELETE, и т.д.). Плюс, если кто-то еще работает над проектом, вы должны обязательно сообщить им, чтобы они вносили одинаковые изменения в свою копию базы данных. Юг делает его намного проще, ИМО.

Как было сказано, может быть здорово, если бы у Юга была возможность удалить все предыдущие миграции, поэтому вы можете начать с чистого листа, когда вы завершаете начальный dev и начинаете добавлять реальные данные. Но в конечном итоге эти дюжины дополнительных файлов миграции на самом деле ничего не стоят вам.

Ответ 3

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

Ответ 4

Определенно можно использовать юг с определенного этапа и выполнить начальную миграцию. SOUT docs здесь: http://south.aeracode.org/docs/tutorial/part1.html#converting-existing-apps

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

Ответ 5

Хорошие новости - по состоянию на 2 сентября 2014 года миграции стали частью ядра Django, выпуск 1.7.

https://docs.djangoproject.com/en/dev/releases/1.7/

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