Как обрабатывать конфигурационные файлы (или db creditentials) в ветках git? - PullRequest
0 голосов
/ 19 октября 2018

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

<?php
return array(
    'hostname' => 'myhostname',
    'username' => 'myuser',
    'password' => 'mypassword',
    'dbname' => 'myLiveDB',
);
?>

Этот файл отслеживается git.В ветке разработки я хочу иметь файл с тем же именем, но с другими учетными данными.Я делаю свою работу в этой ветке, тестирую вещи и затем объединяюсь с master, когда хочу развернуть более новую версию.

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

То, что я рассмотрел до сих пор:

  • .gitattributes файлы с merge=ours для конфигурационного файла + git config --global merge.ours.driver true.Я не думаю, что это работает для rebase, что является проблемой.Я также не уверен, что любому другому разработчику, работающему над этим, потребуется обновить свои настройки вручную, или есть способ изменить этот параметр на уровне хранилища?
  • Отключить файл конфигурации, переписать все, чтобы использовать переменные среды.установите их вручную для сервера и для каждого разработчика.
  • имеет config_test.php и config_prod.php в хранилище.При развертывании попросите сценарий посмотреть, из какой ветки мы развертываем, и скопируйте правильный файл, переименовывая его в config.php

1 Ответ

0 голосов
/ 19 октября 2018

Полагаю, третий пункт может быть хорошим и правильным методом.В spring-boot (java) у нас были разные профили в файле yamal (application.yml) с такими именами, как dev, test, prod и т. Д., И сама Spring получит точный файл, когда он работает в этой конкретной среде.Проверьте что-то вроде есть или нет.

Но в вашем случае просто подумайте, нужен ли вам файл, который находится в git.
Думайте, что у вас есть файл в вашем домашнем каталоге (скажем, /home/myname/testfile/development.properties).И измените код так, чтобы, если этот файл свойств существует, тогда возьмите его, в противном случае возьмите другой.

...