То, как я решаю эту проблему, и мне приходится иметь дело с ней почти в каждом проекте, над которым я работаю, заключается в использовании шаблона, который я выбрал у кого-то. В этом шаблоне, который можно использовать не только для того, чтобы не допустить, чтобы учетные данные не находились под контролем версий, но также для разделения параметров среды / платформы, основной файл настроек, который находится под контролем версий, импортирует вторичный файл настроек, который удачно называется "local_settings". Этот файл "local_settings" не находится под управлением версией, и для каждой платформы, на которой развернут источник, создается отдельный специальный файл local_settings, предназначенный только для этой платформы.
Я приведу пример того, как я обычно делаю это для моих проектов Django / Python. Существует центральный файл settings.py
для каждого проекта, который находится под контролем версий, и платформа (возможно, платформа не совсем подходящая терминология для использования здесь), конкретный файл local_settings.py
. Файл local_settings.py
импортируется из файла settings.py
, где различные переменные настройки определяются следующим образом:
import local_settings
DATABASE_USER = local_settings.db_user
DATABASE_PASSWORD = local_settings.db_pass
И, как пример для приведенного выше фрагмента, файл local_settings.py
определяется следующим образом:
db_user = 'user'
db_pass = 'pass'
Я обнаружил, что эта схема при работе с рассматриваемой проблемой работает очень хорошо.