Я обычно создаю сценарий SQL для каждого изменения, которое я вношу, и другой, чтобы вернуться те изменения и сохранить те сценарии при управлении версиями.
Тогда мы имеем средство создать новую актуальную базу данных по требованию и можем легко переместиться между изменениями. Каждый раз, когда мы делаем выпуск, мы смешиваем сценарии (берет немного физического труда, но это редко на самом деле твердо ), таким образом, у нас также есть ряд сценариев, которые могут преобразовать между версиями.
Да, перед высказыванием этого это очень похоже на направляющие материала, и другие делают, но это, кажется, работает вполне прилично, таким образом, у меня нет проблем при признавании, что я бесстыдно снял идею:)
[Репост от HN, та же ссылка, что и вопрос, так как я хотел бы услышать ваш (вы не ответили на HN) и ответ ТАК.]
Я, очевидно, предвзято, поскольку я запустить компанию по разработке django. Тем не менее, я начну с ответа на недостатки Django,
Кривая обучения: Не больше, чем любой другой фреймворк. Плюс документация на высшем уровне. (Когда я проводил оценку, меня продала документация.)
Меньшее сообщество: Определенно верно. Но за пределами критического размера размер сообщества не имеет значения. Django намного превосходит этот размер. (Irc: в любой момент ~ 200 разработчиков. Группа Google: 14000+ пользователей)
Более медленный цикл разработки самого проекта ?: Почему? Если вы дадите более подробную информацию, я могу ответить на этот вопрос.
(un) Доступность оффшорных ресурсов: Определенно меньше, чем Rails, но все же не так плохо, как вы могли подумать. Очень маленький список, http://uswaretech.com/blog/2009/03/web-development-companies ...
Это сказано, учитывая имеющуюся у вас информацию, в вашем случае я бы выберите Rails. Даже если большая часть работы, которую вы хотите выполнить за границей, ваш существующий опыт работы с Rails был бы огромным плюсом, помогая вам оценивать поставщиков и отслеживать их.
С другой стороны, Django менее зрелый / меньшее сообщество сильно преувеличено. , некоторые цифры,
Вы забыли по крайней мере одно преимущество Rails - улучшенную тестируемость с помощью RSpec / Cucumber. Действительно, главное (дополнительное) преимущество - это внимание к Ruby / Rails со стороны сообщества agile-тестирования. Использование тестирования естественного языка должно значительно улучшить способность рассуждать на основе ваших тестов и способствовать пониманию. В некоторых отношениях это могло бы компенсировать «магию», которую вы ненавидите, документировав ее с помощью легко читаемых тестов.
Кроме того, я бы предположил, что новый проект, на который вы тратите деньги своих друзей и семьи, вероятно, не идеален ситуация, в которой нужно изучить новый язык / фреймворк. Зачем добавлять дополнительный риск к и без того рискованному предприятию?
Я просто собираюсь поспорить со многими из ваших утверждений:
Поскольку вы уже знаете Rails, вам следует придерживаться его, если вы не знаете, что это будет болезненно. Кроме того, если вас не устраивает Rails, я бы порекомендовал вам ознакомиться с руководствами для некоторых других существующих фреймворков Python, таких как Turbogears 2, BFG и Grok. Возможно, вы предпочтете что-то менее монолитное или более полное, чем Rails / Django.
http: //bfg.repoze.org/[1236 visiblehttp://grok.zope.org/[1237 impressionhttp://turbogears.org/
У меня разные взгляды на сравнение этих двух фреймворков. Я все еще новичок в этих двух, поскольку я разработчик Java и ищу что-то более увлекательное в свободное время. Я внимательно наблюдал за этими двумя фреймворками и пришел к следующему:
Как вы знаете, Rails родился из веб-приложения, созданного 37signals, которое влияет на архитектуру if. Я еще не использую Rails в реальном приложении, но думаю, что смогу использовать его в своем следующем домашнем проекте.
Django родился из газетного сайта, поэтому так или иначе, это также влияет на архитектуру самого django. Я использовал django только на своем веб-сайте с песочницей, и пока мне очень нравится создавать с его помощью веб-сайты.
Некоторые люди могут не согласиться со мной, поскольку они могут найти обходной путь для использования Rails в качестве веб-сайтов и django в качестве веб-приложения. Но это то, что, как мне кажется, отличало эти двое по архитектуре. Таким образом, это также определит, для чего они нужны. Не стесняйтесь не соглашаться со мной: -)
Ура.