Junior — Middle
Projelerinizde veritabanları için göçler oluşturdunuz mu?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, Go projelerinde veritabanı yapısındaki değişiklikleri yönetmek için sıklıkla göçler oluşturulur. Göçler, değişiklikleri sıralı şekilde uygulamaya (tablolar oluşturma, sütunlar ekleme, indeksler vb.) ve gerekirse geri almaya olanak tanır.
Go'da göçlerle çalışmak için popüler kütüphaneler arasında golang-migrate/migrate bulunur. Bu kütüphaneler, göçleri SQL veya Go kodu ile dosya halinde saklamaya ve programatik olarak uygulamaya izin verir.
Migrate kütüphanesi ile göçlerin kullanımı örneği:
import (
"database/sql"
_ "github.com/lib/pq" // PostgreSQL sürücüsü
"github.com/golang-migrate/migrate/v4"
"github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/source/file"
)
func main() {
db, _ := sql.Open("postgres", "postgres://kullanici:sifre@localhost:5432/veritabani?sslmode=disable")
driver, _ := postgres.WithInstance(db, &postgres.Config{})
m, _ := migrate.NewWithDatabaseInstance(
"file://migrasyonlar",
"postgres", driver)
err := m.Up() // tüm göçleri uygula
if err != nil && err != migrate.ErrNoChange {
panic(err)
}
}
Bu şekilde, göçler veritabanını güncel tutmaya ve uygulamaların dağıtım ve güncelleme sürecini kolaylaştırmaya yardımcı olur.