Blog

Go PostgreSQL bağlantısı ve Heroku Deployment

Daha önceki yazılarımızda Go programlama diline giriş yapmış ve ardından Go programlama dili ile örnek bir Rest API yaratmıştık. Bu yazımızda ise, uygulamaya PostgreSQL bağlantısı sağlayacağız ve projeyi Heroku üzerine deploy edeceğiz.


Başlayalım!

Heroku üzerinde gerçekleştireceğimiz işlemlere geçmeden önce, deployment için gereken “Godep” isimli paketi, Go projemize ekliyoruz;

 go get -u github.com/tools/godep 
go heroku deploy

Ardından, proje ana dizininde aşağıdaki komutu çalıştırıyoruz;

godep save
go postgresql

Proje tarafında işlemlerimizi tamamladıktan sonra heroku üzerinden hesap yaratma işlemlerine geçebiliriz.

Heroku Hesabı Yaratalım

Öncelikle heroku.com üzerinden ücretsiz hesap ediniyoruz.

go heroku
heroku postgres

Hesabımızı aktive ettikten sonra buradan Heroku CLI ‘ı indirip kuruyoruz.

CLI ‘ı indirdikten sonra ;

  • Aşağıdaki komutu çalıştırıyor ve kullanıcı adı / şifremizi kullanarak giriş yapıyoruz.
heroku login
  • Heroku üzerinde uygulamamızı yaratmak için de aşağıdaki komutu çalıştırıyoruz.
heroku create proje-adi
heroku uygulama oluşturma

Heroku.com ‘dan login olup baktığımızda uygulamamızı dashboardda görebiliriz.

heroku uygulama yayınlama

Deploy Edelim!

Hesabımızı ve uygulamamızı yarattıktan sonra, sırasıyla aşağıdaki adımları izleyerek uygulamamızı heroku’ya deploy ediyoruz.

  • “git init” komutunu çalıştırıyoruz.
  • “git remote –v” komutu ile heroku reposu ile bağlantının sağlanıp sağlanmadığını kontrol edebiliriz. Eğer heroku reposu görünmüyor ise, “heroku create proje-adi” komutunun yanıtında dönmüş olan (https://git.heroku.com/proje-adi.git) repoyu projeye bağlıyoruz. “git remote add heroku https://git.heroku.com/go-postgres-test.git” Ardından tekrar “git remote –v” ile işlemin çalıştığını teyit edebiliriz.
  • Her şey yolunda gitti ve işlemlerimiz başarıyla tamamlandıysa sırasıyla ;
    • git add .
    • git commit -m “first commit”
    • git push heroku master” komutlarını çalıştırarak uygulamamızı, heroku repomuza pushluyoruz.
heroku deployment
heroku deploy
  • Eğer yukarıdaki sonucu aldıysanız, uygulama başarıyla deploy edildi demektir. Şimdi PostgreSQL add-on’unu kullanarak veritabanımızı yaratıyoruz;
heroku addons:create heroku-postgresql:hobby-dev

Bu komutta yer alan “hobby-dev” kısmı ücretsiz postgres planının ismidir. Diğer planları görmek için heroku.com -> proje-adi -> Resources -> Add-ons adımlarını takip ettikten sonra filter kısmına PostgreSQL yazarak gelen pencereye göz atabilirsiniz.

heroku postgresql plans

Heroku PostgreSQL hakkında daha fazla bilgi almak için de buraya tıklayabilirsiniz.

Go & Heroku PostgreSQL Bağlantısı

Uygulamamızı deploy ettik ve PostgreSQL add-onu aracılığıyla veri tabanımızı yarattık. Şimdi, veri tabanı ile projemizi bağlayacağız. Bunun için heroku.com dashboardundan uygulamamıza tıklayarak “Settings” kısmına geliyor ve ardından “Config Var” kısmında bulunan “Reveal Config Vars” butonunu tıklıyoruz.

go postgresql heroku

Butona tıkladığımızda ufacık bir bekleme süresi ardından postgresql url’imizi göreceğiz.

heroku postgres

Eğer projenizi bir önceki yazımızdaki adımları takip ederek yaptıysanız, base.go dosyasında yer alan aşağıdaki yorum satırını bulun;

// Eğer Heroku üzerinde bir PostgreSQL'e sahipseniz, bu ayarlamaları yapmak yerine doğrudan 
// heroku tarafından verilen database url'i kullanabilirsiniz
go heroku postgres connection

Yukarıdaki kodların üst kısmındaki db değişkenlerini kapatıyor ve alttaki dbUri değişkenini açıp, buraya az önce aldığımız DATABASE_URL değerini giriyoruz.

Her şey yolunda gittiyse, “go run main.go” komutunu çalıştırdığımızda, database bağlantımızın sağlandığı ve ardından migrationlarımızın çalıştığını gösteren aşağıdaki şekilde bir sonuç göreceksiniz.

heroku deploy

Her şey tamam!

Şimdi bir kullanıcı hesabı yaratarak test edebiliriz;

heroku deploy

Ardından logini deneyelim;

go heroku postgres

Hepsi bu kadar!

Go & PostgreSQL projesini heroku üzerinde deploy etmek işte bu kadar hızlı ve kolay! Sorularınız olursa bu bağlantıya tıklayarak bize ulaşabilirsiniz.


Benzer
Bloglar

Mailiniz başarıyla gönderilmiştir en kısa sürede sizinle iletişime geçilecektir.

Mesajınız ulaştırılamadı! Lütfen daha sonra tekrar deneyin.