При разработке go-проекта (да и любого другого) вы вправе использовать базу данных. Обычно подключение к базе данных требует dsn-строки определенного формата, например (для Postgres):
При размещении проекта на серверах heroku данная конструкция неактуальна, так как силами инженеров heroku dsn-строка перенесена в переменную окружения
Таким образом вам не требуется знать логины-пароли и прочие детали подключения.
Но возвращаясь к локальной разработке вы снова должны внести в код dsn-строку с настройками вашей локальной БД, а при релизе - эту строку затереть. Таким образом, возникает ненужная суета в коде, которая при наличии гита или другой VCS фиксирует еще и ненужные изменения.
Поэтому синхронизируемся с подходом heroku и пропишем у себя переменную окружения с тем же именем.
Для этого перейдем в ваш домашний каталог и найдем там файлик
Переместимся в его конец и добавим такие строчки:
Перезапускаем bash, проверяем значение переменной:
Теперь из вашем коде можно оставить только одну строку подключения:
И сосредоточиться на разработке более важного функционала.
Конечно, при нескольких проектах с несколькими БД вам потребуется менять значения в dsn-строке в
dbdsn = "dbname=my_database user=postgres password=my_password sslmode=disable"
db, err := sql.Open("postgres", dbdsn)
При размещении проекта на серверах heroku данная конструкция неактуальна, так как силами инженеров heroku dsn-строка перенесена в переменную окружения
DATABASE_URL
и код подключения выглядит так:
db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
Таким образом вам не требуется знать логины-пароли и прочие детали подключения.
Но возвращаясь к локальной разработке вы снова должны внести в код dsn-строку с настройками вашей локальной БД, а при релизе - эту строку затереть. Таким образом, возникает ненужная суета в коде, которая при наличии гита или другой VCS фиксирует еще и ненужные изменения.
Поэтому синхронизируемся с подходом heroku и пропишем у себя переменную окружения с тем же именем.
Для этого перейдем в ваш домашний каталог и найдем там файлик
.bashrc
> cd
> nano .bashrc
Переместимся в его конец и добавим такие строчки:
### Support heroku env DATABASE_URL
export DATABASE_URL="dbname=my_database user=postgres password=my_password sslmode=disable"
Перезапускаем bash, проверяем значение переменной:
> echo $DATABASE_URL
Теперь из вашем коде можно оставить только одну строку подключения:
db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
И сосредоточиться на разработке более важного функционала.
Конечно, при нескольких проектах с несколькими БД вам потребуется менять значения в dsn-строке в
.bashrc
, но это не так напряжно как постоянно править код подключения.
Комментариев нет:
Отправить комментарий