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