Я не думаю, что есть единственное решение, которое работает для всех случаев, поскольку оно может зависеть от чувствительности данных в конфигурационных файлах, используемого вами языка программирования и многих других факторов. Но я думаю, что важно держать файлы конфигурации для всех сред под контролем исходного кода, чтобы вы всегда могли знать, когда он был изменен и кем и, что более важно, иметь возможность восстановить его, если что-то пойдет не так. И они будут.
Так вот как я это делаю. Это обычно для проектов nodejs, но я думаю, что это работает и для других фреймворков и языков.
Что я делаю, это создаю каталог configs
в корне проекта, и в этом каталоге хранится несколько файлов для всех сред (а иногда и отдельных файлов для среды каждого разработчика), которые отслеживаются в системе контроля версий. , И есть фактический файл, который код использует с именем config
в корне проекта. Это единственный файл, который не отслеживается. Так это выглядит
root
|
|- config (not tracked)
|
|- configs/ (all tracked)
|- development
|- staging
|- live
|- James
Когда кто-то проверяет проект, он копирует файл конфигурации, который он хочет использовать, в неотслеживаемый файл config
, и он может редактировать его по своему усмотрению, но также несет ответственность за копирование этих изменений до того, как он выполнит изменения в другой среде. файлы по мере необходимости.
А на серверах неотслеживаемый файл может быть просто копией (или ссылкой) отслеживаемого файла, соответствующего этой среде. В JS вы можете просто иметь 1 строку, чтобы требовать этот файл.
Поначалу этот процесс может быть немного сложным, но он имеет большие преимущества:
1. Вам никогда не придется беспокоиться об удалении или изменении файла конфигурации на сервере без резервной копии
2. То же самое, если у разработчика есть какая-то настраиваемая конфигурация на его компьютере, и его машина перестает работать по любой причине
3. Перед любым развертыванием вы можете, например, изменить файлы конфигурации для development
и staging
и посмотреть, есть ли что-то пропущенное или сломанное.