пятница, 16 декабря 2016 г.

Настройка DATABASE_URL для локальной разработки

При разработке go-проекта (да и любого другого) вы вправе использовать базу данных. Обычно подключение к базе данных требует dsn-строки определенного формата, например (для Postgres):

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, но это не так напряжно как постоянно править код подключения.

Комментариев нет:

Отправить комментарий