1. SQLite Veritabanına Bağlanma
SQLite, hafif bir veritabanıdır ve veritabanı dosyasından ibarettir, bu da küçük projeler veya test ortamları için çok uygundur.
SQLite'a bağlanmak ve otomatik göç aracını çalıştırmak için aşağıdaki adımları takip edebilirsiniz:
İlk olarak, SQLite için Go dil sürücüsünü yüklediğinizden emin olun. Aşağıdaki komutu kullanarak yükleyebilirsiniz:
go get github.com/mattn/go-sqlite3
Daha sonra, Go programınızda, aşağıdaki kodu kullanarak veritabanına bağlanın ve şema oluşturun:
package main
import (
"context"
"log"
"entdemo/ent"
_ "github.com/mattn/go-sqlite3"
)
func main() {
// SQLite veritabanına dosya modunda bağlanın veya oluşturun.
client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
if err != nil {
log.Fatalf("SQLite'a bağlanılamadı: %v", err)
}
defer client.Close()
// Otomatik göç aracını çalıştırarak veritabanı şemasını oluşturun veya güncelleyin.
if err = client.Schema.Create(context.Background()); err != nil {
log.Fatalf("Şema kaynakları oluşturulamadı: %v", err)
}
// Artık istemciyi veritabanı işlemleri için kullanmaya başlayabilirsiniz.
}
Yukarıdaki kod önce gerekli paketleri içe aktarır ve SQLite için hafızada veritabanı için bağlantı nesnesi client
oluşturur. Daha sonra, client.Schema.Create
'i çalıştırarak SQLite veritabanını göç eder. Bu adım, tanımladığınız şemaya göre veritabanındaki tabloları otomatik olarak oluşturur veya günceller.
2. PostgreSQL Veritabanına Bağlanma
PostgreSQL, güçlü bir açık kaynak nesne-tabanlı veritabanı sistemidir. Karmaşık projeler için geniş çapta kullanılır ve çeşitli gelişmiş özellikleri destekler. PostgreSQL'i Go'da kullanabilmek için karşılık gelen sürücüsü olan github.com/lib/pq
'yu kullanmanız gerekir.
PostgreSQL sürücüsünü yükleyin:
go get github.com/lib/pq
PostgreSQL veritabanına bağlanma ve göç işlemini gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz:
package main
import (
"context"
"log"
"entdemo/ent"
_ "github.com/lib/pq"
)
func main() {
// PostgreSQL veritabanı bağlantı bilgilerinizle istemciyi başlatın.
client, err := ent.Open("postgres", "host=localhost port=5432 user=myuser dbname=mydb password=mypassword")
if err != nil {
log.Fatalf("PostgreSQL'e bağlanılamadı: %v", err)
}
defer client.Close()
// Otomatik olarak göç aracını çalıştırın.
if err = client.Schema.Create(context.Background()); err != nil {
log.Fatalf("Şema kaynakları oluşturulamadı: %v", err)
}
// İstemciyi kullanarak diğer veritabanı işlemlerini gerçekleştirin.
}
Bu kodda, host
, port
, user
, dbname
ve password
'ü gerçek ortamınızda doğru PostgreSQL bağlantı bilgileriyle değiştirin.
3. MySQL/MariaDB Veritabanına Bağlanma
MySQL, yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir ve MariaDB onun dallarından biridir. MySQL/MariaDB'ye bağlanmak genellikle karakter setinin (örneğin, utf8mb4
) ve saat diliminin (örneğin, UTC
) belirlenmesini gerektirir.
İlk olarak, MySQL için Go dil sürücüsünü yükleyin:
go get github.com/go-sql-driver/mysql
MySQL veritabanına bağlanın ve yapılandırın:
package main
import (
"context"
"log"
"entdemo/ent"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// MySQL istemcisini başlatın, karakter setini ve saat dilimini ayarlayın.
client, err := ent.Open("mysql", "username:password@tcp(localhost:3306)/dbname?parseTime=True&loc=Local&charset=utf8mb4,utf8")
if err != nil {
log.Fatalf("MySQL'e bağlanılamadı: %v", err)
}
defer client.Close()
// Veri göçünü gerçekleştirin.
if err = client.Schema.Create(context.Background()); err != nil {
log.Fatalf("Şema kaynakları oluşturulamadı: %v", err)
}
// Veritabanı işlemleri buradan başlar.
}
Bağlantı dizesindeki username
, password
, localhost
, 3306
ve dbname
'i uygun değerlerle değiştirdiğinizden emin olun.
4. Gremlin Veritabanına Bağlan
Gremlin, Apache TinkerPop çerçevesinin graf sorgu dili olup çeşitli graf veritabanı sistemlerinde kullanılır. İşte AWS Neptune kullanarak Gremlin graf veritabanına bağlanma örneği.
Gremlin desteği ile ent çerçevesini yükleyin:
go get entgo.io/ent/dialect/gremlin
Gremlin veritabanına bağlanın:
package main
import (
"log"
"entdemo/ent"
_ "entgo.io/ent/dialect/gremlin"
)
func main() {
// Örnek olarak yerel çalışmayı kullanarak Gremlin sunucu uç noktasına bağlanın.
client, err := ent.Open("gremlin", "http://localhost:8182")
if err != nil {
log.Fatalf("Gremlin'a bağlanılamadı: %v", err)
}
defer client.Close()
// İstemciyi başlatın veya graf veritabanını manipüle etmek için kullanın.
}
AWS Neptune gibi bir bulut hizmeti kullanıyorsanız, http://localhost:8182
'yi Neptune'ın sunucu adresi ve portuyla değiştirin.