Как обрабатывать конфигурационные файлы (или db creditentials) в ветках git?

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

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

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

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

Что я учел до сих пор:

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

0

Решение

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]