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. Go ile Heroku PostgreSQL entegrasyonu, üretime hazır bir REST API’yi buluta taşımanın hızlı ve ücretsiz bir yoludur.
İçindekiler
Heroku üzerinde gerçekleştireceğimiz işlemlere geçmeden önce, deployment için gereken Godep paketini Go projemize ekliyoruz:
TERMINAL
go get -u github.com/tools/godep
Ardından proje ana dizininde aşağıdaki komutu çalıştırıyoruz:
godep save
Öncelikle heroku.com üzerinden ücretsiz hesap ediniyoruz.
Hesabımızı aktive ettikten sonra Heroku CLI’yi buradan indirip kuruyoruz.
CLI’yi indirdikten sonra sırasıyla şu komutları çalıştırıyoruz:
heroku login
heroku create proje-adi
Heroku.com’dan login olup baktığımızda uygulamamızı dashboard’da görebiliriz.
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 git add . git commit -m "first commit" git push heroku master
git remote –v komutu ile heroku reposu ile bağlantının sağlanıp sağlanmadığını kontrol edebilirsiniz. Heroku reposu görünmüyorsa, heroku create proje-adi komutunun yanıtında dönen URL’yi aşağıdaki şekilde ekleyebilirsiniz:
git remote –v
git remote add heroku https://git.heroku.com/proje-adi.git
Uygulama başarıyla deploy edildiyse, PostgreSQL add-on’unu kullanarak veri tabanımızı yaratıyoruz:
heroku addons:create heroku-postgresql:hobby-dev
Bu komuttaki hobby-dev kısmı ücretsiz Postgres planının ismidir. Diğer planları görmek için Heroku dashboard’unuzda Resources → Add-ons kısmına giderek PostgreSQL’i arayabilirsiniz.
hobby-dev
Heroku PostgreSQL hakkında daha fazla bilgi almak için resmi dokümantasyona göz atabilirsiniz.
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 dashboard’dan uygulamamıza tıklayarak Settings → Config Vars → Reveal Config Vars butonunu tıklıyoruz.
Butona tıkladığımızda PostgreSQL URL’imizi göreceğiz.
Eğer projenizi ö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:
base.go
GO
// Eğer Heroku üzerinde bir PostgreSQL'e sahipseniz, bu ayarlamaları yapmak yerine doğrudan // heroku tarafından verilen database url'i kullanabilirsiniz
Yukarıdaki kodların üst kısmındaki db değişkenlerini kapatıp alttaki dbUri değişkenini açıyor ve buraya az önce aldığımız DATABASE_URL değerini giriyoruz.
db
dbUri
DATABASE_URL
Her şey yolunda gittiyse, go run main.go komutunu çalıştırdığımızda database bağlantımızın sağlandığını ve migration’larımızın çalıştığını gösteren aşağıdaki sonucu göreceksiniz.
go run main.go
Şimdi bir kullanıcı hesabı yaratarak test edebiliriz:
Ardından login’i deneyelim:
Go & PostgreSQL projesini Heroku üzerinde deploy etmek işte bu kadar hızlı ve kolay! Sorularınız olursa bizimle iletişime geçebilirsiniz.
Heroku’nun ücretsiz planı PostgreSQL için hala geçerli mi?
Heroku 2022 yılında ücretsiz planını kaldırdı. Eski hobby-dev planı artık mevcut değil. Alternatif olarak Railway, Render veya Fly.io gibi platformlar Go uygulamaları için ücretsiz veya düşük maliyetli PostgreSQL destekli deployment seçenekleri sunmaktadır.
Heroku’ya deploy sırasında “no web processes running” hatası neden alınır?
Bu hata genellikle projenin kök dizininde bir Procfile dosyası olmadığında ya da dosyanın yanlış yapılandırıldığında oluşur. Procfile içeriği şu şekilde olmalıdır: web: ./proje-adi. Ayrıca heroku ps:scale web=1 komutu çalıştırarak web dynamo’yu aktive edebilirsiniz.
Procfile
web: ./proje-adi
heroku ps:scale web=1
Godep yerine Go modules kullanılabilir mi?
Evet. Godep eski bir bağımlılık yönetim aracıdır; Go 1.11’den itibaren standart go mod sistemi kullanılabilir. Heroku Go buildpack da go modules’u desteklemektedir. go.mod ve go.sum dosyalarınız varsa Heroku bunları otomatik olarak tanır.
go mod
go.mod
go.sum
DATABASE_URL değeri nasıl güvenli şekilde kullanılır?
DATABASE_URL’yi asla kaynak koduna sabit olarak yazmayın. Heroku’da bu değer Config Vars üzerinden otomatik olarak ortam değişkeni olarak enjekte edilir. Kodunuzda os.Getenv("DATABASE_URL") ile bu değeri okuyabilirsiniz. Bu şekilde hem lokal hem de üretim ortamında güvenli çalışır.
os.Getenv("DATABASE_URL")
Heroku PostgreSQL — Resmi Dokümantasyon Heroku CLI — Kurulum Rehberi Go Programlama Diline Giriş — MDP Group Go Dili ile Restful API Geliştirme — MDP Group
Web & Mobil Geliştirme Takım Lideri
SAP TM ile Uluslararası ve Çok Modlu Taşımacılık Nasıl Gerçekleşir?
Giriş SAP TM, çok modlu taşımacılığı tek bir entegre platformda planlayarak farklı taşıma modları arasındaki geçişleri optimize eder...
NodeJS ile Test Ortamı Nasıl Oluşturulur?
Eğer okumadıysanız bu içeriği okumadan önce "NodeJS ile API Testi Nasıl Yapılır?" başlıklı içeriği okuyabilirsiniz.NodeJS ile Test...
SAP’ta Custom ABAP Kodu S/4HANA’ya Taşınmıyor: Nasıl Başa Çıkılır?
Custom ABAP kodu S/4HANA’ya neden taşınmıyor? ATC analizi, envanter tespiti ve modern yaklaşımlarla nasıl başa çıkılır. ABAP...
Bilgi Yönetim Sistemi: Kurumsal Bilgiyi Verimli Yönetme Rehberi
Bilgi yönetim sistemi, kurumsal bilgi varlıklarını üretme, sınıflandırma, depolama, paylaşma ve yeniden kullanmayı sistematik hale getiren...
CAP Projelerinde Javascript mi yoksa Typescript mi Tercih Edilmeli?
JavaScript mi TypeScript mi sorusu CAP projelerinde bir ayrım noktasıdır; çoğu geliştirici bunu düşünmeden JavaScript ile başlar, sonra...
SAP TM ile Stratejik Navlun Yönetimi ve Tedariği Nedir?
Giriş Günümüz küresel ekonomisinde, şirketlerin rekabetçi kalabilmek için her maliyet kalemini dikkatle yönetmesi şart. Bu kalemler...
SAP PO B2B EDI Bağlantı Protokolleri ve Standart Örnekleri
SAP PO B2B EDI bağlantı protokolleri, müşteri ve tedarikçiler arasındaki hızlı ve güvenli elektronik veri değişimini SAP Process...
2026’da Depo Yönetimini Şekillendiren 6 Temel Trend
2026 depo yönetim trendleri yapay zeka, gerçek zamanlı görünürlük ve otomasyon ekseninde şekilleniyor. SAP EWM ile bu trendleri operasyona...
e-Muhasebe Fişi Kılavuzu: Türleri, Zorunluluklar ve SAP Çözümü
e-Muhasebe fişi, Gelir İdaresi Başkanlığı’nın (GİB) belirlediği formatta elektronik ortamda oluşturulan, Mali Mühür ve zaman...
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.