Должен ли я использовать миграции для создания папок? - PullRequest
1 голос
/ 22 декабря 2009

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

Что вы считаете лучшей практикой:

  1. Создайте папки локально и оставьте где-нибудь заметку, объясняющую, что эти папки должны быть созданы

  2. Создание миграции, которая создаст эти папки

  3. Создание папок, если они не существуют при выполнении

Так, каковы лучшие методы относительно этого?

Ответы [ 5 ]

6 голосов
/ 22 декабря 2009

Два варианта

1. Поставьте их под контроль версий.

При следующей проверке разработчиков папки будут созданы. То, как вы добавите их в VC, зависит от природы используемого вами инструмента, но многие инструменты требуют, чтобы каталоги содержали файл (возможно, скрытый).

Это прекрасно работает, если папки находятся в дереве исходных текстов. У вас также есть возможность на Unix-подобной ОС мягкую ссылку из дерева исходных текстов в хорошо известное место за пределами дерева исходных текстов. В зависимости от системы VC (мы используем Mercurial), вы можете сделать программную ссылку версионным элементом.


2. Создайте их при запуске процесса

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

3 голосов
/ 22 декабря 2009

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

2 голосов
/ 22 декабря 2009

Это хороший вопрос.

Для меня я бы поставил создание папки в миграции, если и только если папка была необходима в рамках этой миграции. Так, например, вы добавляете или обновляете таблицу, связанную с вложениями (например, с attachment_fu и т. Д.), Тогда я мог бы рассмотреть возможность размещения там создания / удаления каталога.

Однако создание каталогов зависит от конкретной среды (отличается в Windows от * nix и т. Д.), Особенно там, где требуются разрешения. Поэтому было бы разумно пойти туда, где эти проблемы решаются без абстракций. Возможно, в сценарии развертывания (если используется Capistrano) или, как другие люди предложили в граблях.

2 голосов
/ 22 декабря 2009

Я бы включил это в задачу по загрузке рейка.

0 голосов
/ 22 декабря 2009

Я добавлю их в хранилище. Может быть, если он содержит временные данные, я проигнорирую содержимое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...