1. Connessione al Database SQLite

SQLite è un database leggero e il suo database è semplicemente un file, rendendolo molto adatto per progetti di piccole dimensioni o ambienti di test.

Ecco i passaggi per connettersi a SQLite ed eseguire lo strumento di migrazione automatica:

Prima di tutto, assicurati di aver installato il driver del linguaggio Go per SQLite. Puoi installarlo usando il seguente comando:

go get github.com/mattn/go-sqlite3

Successivamente, nel tuo programma Go, utilizza il seguente codice per connetterti al database e creare lo schema:

package main

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

func main() {
    // Apre o crea il database SQLite in modalità file.
    client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
    if err != nil {
        log.Fatalf("Impossibile connettersi a sqlite: %v", err)
    }
    defer client.Close()

    // Esegue lo strumento di migrazione automatica per creare o aggiornare lo schema del database.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("Impossibile creare risorse dello schema: %v", err)
    }
    
    // Inizia ad utilizzare il client per operazioni sul database da qui.
}

Il codice sopra importa innanzitutto i pacchetti necessari ed istituisce un oggetto di connessione client per il database SQLite in memoria. Successivamente esegue client.Schema.Create per migrare il database SQLite. Questo passaggio creerà o aggiornerà automaticamente le tabelle nel database in base allo schema da te definito.

2. Connessione al Database PostgreSQL

PostgreSQL è un potente sistema di database relazionale ad oggetti open-source. È ampiamente utilizzato per progetti complessi e supporta diverse funzionalità avanzate. Per utilizzare PostgreSQL in Go, è necessario utilizzare il relativo driver github.com/lib/pq.

Installa il driver PostgreSQL:

go get github.com/lib/pq

I passaggi per connettersi a un database PostgreSQL e eseguire la migrazione sono i seguenti:

package main

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

func main() {
    // Inizializza il client con le informazioni di connessione al tuo database PostgreSQL.
    client, err := ent.Open("postgres", "host=localhost port=5432 user=myuser dbname=mydb password=mypassword")
    if err != nil {
        log.Fatalf("Impossibile connettersi a postgres: %v", err)
    }
    defer client.Close()

    // Esegui automaticamente lo strumento di migrazione.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("Impossibile creare risorse dello schema: %v", err)
    }
    
    // Esegui altre operazioni sul database utilizzando il client.
}

In questo codice, sostituisci host, port, user, dbname e password con le corrette informazioni di connessione PostgreSQL nel tuo ambiente reale.

3. Connessione al Database MySQL/MariaDB

MySQL è un sistema di gestione di database relazionali ampiamente utilizzato, e MariaDB è uno dei suoi rami. La connessione a MySQL/MariaDB di solito richiede di impostare il set di caratteri (ad esempio, utf8mb4) e il fuso orario (ad esempio, UTC).

Prima di tutto, installa il driver del linguaggio Go per MySQL:

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

Connettiti e configura il database MySQL:

package main

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

func main() {
    // Inizializza il client MySQL, imposta il set di caratteri e il fuso orario.
    client, err := ent.Open("mysql", "username:password@tcp(localhost:3306)/dbname?parseTime=True&loc=Local&charset=utf8mb4,utf8")
    if err != nil {
        log.Fatalf("Impossibile connettersi a MySQL: %v", err)
    }
    defer client.Close()

    // Esegui la migrazione dei dati.
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("Impossibile creare risorse dello schema: %v", err)
    }
    
    // Le operazioni sul database iniziano da qui.
}

Assicurati di sostituire username, password, localhost, 3306 e dbname nella stringa di connessione con i valori appropriati.

4. Connettersi al database Gremlin

Gremlin è il linguaggio di interrogazione del grafo del framework Apache TinkerPop ed è utilizzato in vari sistemi di database grafici. Ecco un esempio di connessione a un database grafico Gremlin utilizzando AWS Neptune.

Installa il framework ent con supporto Gremlin:

go get entgo.io/ent/dialect/gremlin

Connettiti al database Gremlin:

package main

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

func main() {
    // Connettiti al server Gremlin, utilizzando l'esempio di esecuzione locale qui.
    client, err := ent.Open("gremlin", "http://localhost:8182")
    if err != nil {
        log.Fatalf("Impossibile connettersi a Gremlin: %v", err)
    }
    defer client.Close()

    // Inizializza o utilizza il client per manipolare il database grafico.
}

Se stai utilizzando un servizio cloud come AWS Neptune, sostituisci http://localhost:8182 con l'indirizzo e la porta del server di Neptune.