1. اتصال به پایگاه داده SQLite

SQLite یک پایگاه داده سبک است و پایگاه داده آن فقط یک فایل است که آن را برای پروژه‌های کوچک یا محیط‌های آزمایشی بسیار مناسب می‌کند.

مراحل اتصال به SQLite و اجرای ابزار مهاجرت خودکار به این شرح است:

ابتدا اطمینان حاصل کنید که راننده زبان Go برای SQLite را نصب کرده‌اید. می‌توانید آن را با دستور زیر نصب کنید:

go get github.com/mattn/go-sqlite3

سپس، در برنامه Go خود، از کد زیر برای اتصال به پایگاه داده و ایجاد طرح استفاده کنید:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    // پایگاه داده SQLite در حالت فایلی را باز یا ایجاد کنید.
    client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
    if err != nil {
        log.Fatalf("اتصال به SQLite ناموفق بود: %v", err)
    }
    defer client.Close()

    // ابزار مهاجرت خودکار را برای ایجاد یا به‌روزرسانی طرح پایگاه داده اجرا کنید.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("اتصال به منابع طرح ناموفق بود: %v", err)
    }
    
    // از اینجا شروع به استفاده از مشتری برای عملیات پایگاه داده کنید.
}

کد فوق ابتدا بسته‌های مورد نیاز را وارد می‌کند و یک شیء اتصالی client برای پایگاه داده SQLite در حافظه را ایجاد می‌کند. سپس client.Schema.Create را اجرا می‌کند تا پایگاه داده SQLite را مهاجرت کند. در این مرحله، جداول در پایگاه داده براساس طرحی که شما تعریف می‌کنید، به صورت خودکار ایجاد یا به‌روزرسانی می‌شوند.

2. اتصال به پایگاه داده PostgreSQL

PostgreSQL یک سیستم پایگاه داده شیء-رابط قدرتمند منبع‌باز است. برای پروژه‌های پیچیده به طور گسترده استفاده می‌شود و امکانات پیشرفته‌ای را پشتیبانی می‌کند. برای استفاده از PostgreSQL در Go، باید از راننده متناظر آن یعنی github.com/lib/pq استفاده کنید.

راننده PostgreSQL را نصب کنید:

go get github.com/lib/pq

مراحل اتصال به پایگاه داده PostgreSQL و انجام مهاجرت به شرح زیر است:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/lib/pq"
)

func main() {
    // مشتری را با اطلاعات اتصال پایگاه داده PostgreSQL خود مقدماتی کنید.
    client, err := ent.Open("postgres", "host=localhost port=5432 user=myuser dbname=mydb password=mypassword")
    if err != nil {
        log.Fatalf("اتصال به PostgreSQL ناموفق بود: %v", err)
    }
    defer client.Close()

    // به‌طور خودکار ابزار مهاجرت را اجرا کنید.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("اتصال به منابع طرح ناموفق بود: %v", err)
    }
    
    // از مشتری برای عملیات پایگاه داده دیگر استفاده کنید.
}

در این کد، host، port، user، dbname و password را با اطلاعات صحیح اتصال PostgreSQL در محیط واقعی خود جایگزین کنید.

3. اتصال به پایگاه داده MySQL/MariaDB

MySQL یک سیستم مدیریت پایگاه داده ارتباطی گسترده استفاده شده است و MariaDB یکی از شاخه‌های آن است. برای اتصال به MySQL/MariaDB معمولاً نیاز به تنظیم مجموعه نویسه (مانند utf8mb4) و منطقه زمانی (مانند UTC) داریم.

اول، راننده زبان Go برای MySQL را نصب کنید:

go get github.com/go-sql-driver/mysql

اتصال و پیکربندی پایگاه داده MySQL را انجام دهید:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // مشتری MySQL را مقدماتی کنید، مجموعه نویسه و منطقه زمانی را تنظیم کنید.
    client, err := ent.Open("mysql", "username:password@tcp(localhost:3306)/dbname?parseTime=True&loc=Local&charset=utf8mb4,utf8")
    if err != nil {
        log.Fatalf("اتصال به MySQL ناموفق بود: %v", err)
    }
    defer client.Close()

    // انتقال داده را انجام دهید.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("اتصال به منابع طرح ناموفق بود: %v", err)
    }
    
    // عملیات پایگاه داده از اینجا شروع می‌شود.
}

مطمئن شوید که username، password، localhost، 3306 و dbname را در رشته اتصال با مقادیر مناسب جایگزین کنید.

4. اتصال به پایگاه داده Gremlin

Gremlin، زبان پرس و جو گراف فریمورک Apache TinkerPop می‌باشد و در انواع سیستم‌های پایگاه داده گراف استفاده می‌شود. در ادامه یک مثال برای اتصال به پایگاه داده گراف Gremlin با استفاده از سرویس AWS Neptune آمده است.

نصب ent framework با پشتیبانی از Gremlin:

go get entgo.io/ent/dialect/gremlin

اتصال به پایگاه داده Gremlin:

package main

import (
    "log"
    "entdemo/ent"
    _ "entgo.io/ent/dialect/gremlin"
)

func main() {
    // اتصال به انتهایه سرور Gremlin، اینجا به عنوان یک مثال از اجرای محلی استفاده شده است.
    client, err := ent.Open("gremlin", "http://localhost:8182")
    if err != nil {
        log.Fatalf("اتصال به Gremlin ناموفق بود: %v", err)
    }
    defer client.Close()

    // مقدماتی کردن یا استفاده از مشتری برای تغییر دادن پایگاه داده گراف.
}

اگر از سرویس ابری مانند AWS Neptune استفاده می‌شود، http://localhost:8182 را با آدرس و پورت سرور Neptune جایگزین کنید.