Как я могу использовать Git с различными конфигурациями базы данных между разработчиками? - PullRequest
1 голос
/ 14 марта 2012

Я разрабатываю приложение в Code Igniter с другом.Поскольку у нас обоих разные логины базы данных на наших машинах, у нас разные файлы "config / database.php".

Как я могу сказать Git, что у нас обоих разные конфигурации баз данных?Прямо сейчас, мы получаем конфликты слияния каждый раз, когда мы вытягиваем, потому что «config / database.php» отличается для нас.

Ответы [ 4 ]

6 голосов
/ 14 марта 2012

Обычно я переименовываю файл /application/config/database.php в /application/config/database.default.php (версия) и добавляю исходный путь к файлу .gitignore. Затем каждый разработчик копирует файл по умолчанию (неверсионный файл) обратно в исходный путь и редактирует в соответствии со своими локальными настройками.

Это становится дополнительным этапом в процессе настройки сервера, но оно спасает упомянутое вами горе.

1 голос
/ 15 марта 2012

Имеется один файл, который выбирает конфигурацию на основе переменной среды.Задайте эту переменную в конфигурации вашего сервера.

<?php

if (getenv('WHOS_CONFIG') == 'mine') { … } else { … }

и в настройках сервера (что не поверите, иначе снова возникнет та же проблема:)
например, для Apache:

<VirtualHost *>
SetEnv WHOS_CONFIG mine
…

В качестве альтернативы, есть общий файл конфигурации database.php, который включает в себя database.local.php файл, который не является версионным.Последний переопределит переменные, которые вам нужны.

1 голос
/ 14 марта 2012

Мы обычно помещаем файлы конфигурации базы данных в файл .gitignore, чтобы избежать этих проблем.В любом случае, это хорошая идея - не помещать эти файлы конфигурации с их именами пользователей и паролями в git.
Мы часто будем хранить файл config/database.yml.template (мы используем рельсы) в качестве основы для копирования людьми в config/database.ymlа затем отредактируйте на свой локальный компьютер.Имя файла database.yml помещается в файл .gitignore (который используется совместно с контролем версий).

Основы gitignore можно увидеть здесь .
Дополнительная информация, включая подводные камничтобы избежать: Игнорировать файлы, которые уже были переданы в хранилище Git

1 голос
/ 14 марта 2012

Два варианта:

  1. Больше не управлять версиями этого файла (я оставляю команду git для вашего исследования)
  2. Используйте файл .gitignore

В результате у вас будет файл на старом месте, но он больше не будет мешать «другому» файлу

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