Файлы в гитиньоре - PullRequest
2 голосов
/ 29 июня 2010

У меня есть хранилище с приложением rails на производственном сервере.

В репозитории есть файл .gitignore:

...
    config/database.yaml 
...

У каждого разрабатываемого клиента есть клонированное хранилище с разными config / database.yaml.

Моя проблема заключается в следующем:

database.yaml находится в .gitignore, тогда при запуске git clone (на сервере) база данных.yaml не будет создана, но мне это нужно.

Я подумал, что я что-то не так делаю. Вы видите, где моя ошибка?

спасибо, Alessandro

Ответы [ 5 ]

10 голосов
/ 29 июня 2010

В моих проектах я обычно делаю копию используемой конфигурации базы данных в database.example.yml, затем, когда кто-то клонирует проекты, копирует database.example.yml в database.yml и вносит необходимые изменения.

3 голосов
/ 29 июня 2010

(вот копия моего оригинального ответа на ваш первый вопрос )

Вы не сделали верный файл.

Вы должны версию:

  • a database.yaml.template
  • 2 файла (один для значений сервера и один для общих значений клиента)
  • 1 скрипт, способный собрать database.yaml на кассе

Этот скрипт будет вызываться с помощью шага смазывания драйвера фильтра .

alt text

Получившийся database.yaml будет «приватным» (никогда не будет версионным / выдвинутым или извлеченным) и может быть изменен по желанию.

1 голос
/ 29 июня 2010

сохраняйте шаблон как database.example.yml, как предлагает robertokl

при развертывании приложения на рабочем сервере вы должны использовать что-то вроде capistrano , и часть вашего рецепта (сценария) capistrano будет состоять в том, чтобы переименовать этот файл или поместить правильный файл database.yml в config dir

0 голосов
/ 29 июня 2010

aleds - обычно плохая идея иметь ваш database.yml в хранилище, поэтому вы видите его в .gitignore.robertokl прав насчет предоставления файла шаблона.

0 голосов
/ 29 июня 2010

Все эти файлы database.yaml имеют что-то общее: вы можете зафиксировать базовую конфигурацию и позволить всем вашим развивающимся клиентам поддерживать ее в своих ветках с соответствующими настройками; они могут перебазироваться поверх базовой конфигурации в основной ветке всякий раз, когда она обновляется.

...