LINUX.ORG.RU

Вопрос про github


0

1

Есть открытый репозиторий. Туда push'y данные с рабочего пк и pull'ю их на хост. Сейчас один файл приходится иногда менять, но в нем есть пароль от бд. Могу кинуть его в gitignore, но тогда придется отдельно его потом на хост заливать, что очень неудобно. Есть ли выход?


Есть, выбирай: settings.conf (в git) и settings.conf.local с тем, что в git не должно быть. Или закрытый репозиторий (но лучше git'у такое всё же не доверять).

beastie ★★★★★
()
Ответ на: комментарий от anonymous9

Хз, вроде нельзя вынести в отдельных конфиг. Файл settings.py из Django. Django все настройки оттуда берет.

mrXorg
() автор топика
Ответ на: комментарий от beastie

Есть, выбирай: settings.conf (в git) и settings.conf.local с тем, что в git не должно быть.

Не понял вас.

Или закрытый репозиторий

Нужен открытый.

mrXorg
() автор топика

я не джангист, но вообще принято класть в репу settings.py.example, или что-то вроде того, а юзер, который приложение настраивает, уже должен его скопировать в settings.py, и вбить туда пароли и т.п., и ессно файл должен быть в .gitignore

waker ★★★★★
()
Ответ на: комментарий от mrXorg

Есть, выбирай: settings.conf (в git) и settings.conf.local с тем, что в git не должно быть.

плюсую. сам так делаю в проектах на ноде. но в джанге, думается, это несколько сложнее, хотя и наверняка возможно.

waker ★★★★★
()

Есть 2 решения.

1. Хранить базовые конфиги под другим расширением, чтобы юзеру можно было либо переименовать без изменений либо написать свои. Например вот: https://github.com/nodeca/nodeca/tree/master/config . Создание копий с правильными расширениями можно заскриптовать.

2. Хранить приватные данные в шифрованном виде, а ключ расшифровки на сервере. Пример http://docs.travis-ci.com/user/build-configuration/#Secure-environment-variables

Vit ★★★★★
()
Ответ на: комментарий от mrXorg

Как тут не только я и говорят: общий конфиг с установками по умолчанию в git и частный конфиг на сервере с локальными установками (вне git), имеющий более высокий приоритет.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от mm3

Да, нашёл уже на stackoverflow решение:

 
try:
    from local_settings import *
except ImportError:
    pass

Всем спасибо за наводку.

mrXorg
() автор топика
Ответ на: комментарий от mrXorg

Файл settings.py из Django. Django все настройки оттуда берет.

А разве питон не умеет инклуды?

Если не хотим инклудов, то кладём в гит settings.py.example без всяких паролей, при первом деплое вручную копируем и меняем нужные данные. Ну и если что-то вдруг поменяется то опять же либо ручками либо скрипт в миграциях наколхозить (да, миграции могут использоваться не только для обновления структуры БД, но и для всяких прочих дел, хоть и не по фэншую).

INFOMAN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.