2015-11-27 3 views
1

Я наследую проект, который использует config/database.yml.sqlite и config/database.yml.psql вместо config/database.yml.Зачем использовать расширение для config/database.yml?

Почему это делается и как его использовать?

Если я только что запустил rake db:create, рельсы ищут config/database.yml. Я пробовал искать способ указать имя файла конфигурации, но не повезло.

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

+0

Я думаю, что они просто имеют расширение, чтобы сосуществовать в каталоге. Поэтому, если вы хотите использовать SQLite в своем проекте, вам нужно переименовать 'database.yml.sqlite' в' database.yml'. То же самое применяется, если вы хотите использовать Postgresql. – Tobias

ответ

5

Часто бывает вполне нормально, чтобы добавить database.yml к вашему .gitignore файлу, потому что он может содержать пароли и т. д., и поэтому его следует избегать из репозитория Git.

В этом случае полезно иметь пример database.yml файл в репо, показывая настройки вы хотели бы для, скажем, база данных Postgres, если вы собираетесь использовать это, или Sqlite базы данных, если вы предпочитаете это для своей разработки. Затем вы можете быстро настроить, как только вы клонировали репо.

Все, что вам нужно сделать, это запустить:

cp config/database.yml.psql config/database.yml 

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

0

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

Тот же результат может быть достигнут с помощью одного файла YAML с обширными документированных блоков - «вот SQLite блок, вот Postgres блок» и т.д.