Sobes.tech
Junior — Middle

Ai creat migrații pentru baze de date în proiectele tale?

sobes.tech AI

Răspuns de la AI

Da, în proiectele Go se creează adesea migrații pentru gestionarea modificărilor în structura bazei de date. Migrațiile permit aplicarea secvențială a modificărilor (crearea tabelelor, adăugarea de coloane, indecși etc.) și revertarea lor dacă este necesar.

Pentru lucrul cu migrațiile în Go, sunt populare biblioteci precum golang-migrate/migrate. Acestea permit stocarea migrațiilor sub formă de fișiere SQL sau cod Go și aplicarea lor programatică.

Exemplu de utilizare a migrațiilor cu biblioteca migrate:

import (
    "database/sql"
    _ "github.com/lib/pq" // driver PostgreSQL
    "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://user:pass@localhost:5432/dbname?sslmode=disable")
    driver, _ := postgres.WithInstance(db, &postgres.Config{})
    m, _ := migrate.NewWithDatabaseInstance(
        "file://migratii",
        "postgres", driver)

    err := m.Up() // aplică toate migrațiile
    if err != nil && err != migrate.ErrNoChange {
        panic(err)
    }
}

Astfel, migrațiile ajută la menținerea bazei de date actualizate și simplifică procesul de implementare și actualizare a aplicațiilor.