Sobes.tech
Junior — Middle

Vytvářeli jste migrace pro databáze ve svých projektech?

sobes.tech AI

Odpověď od AI

Ano, v projektech v jazyce Go se často vytvářejí migrace pro správu změn ve struktuře databáze. Migrace umožňují postupně aplikovat změny (vytváření tabulek, přidávání sloupců, indexů atd.) a v případě potřeby je vrátit zpět.

Pro práci s migracemi v Go jsou populární knihovny jako golang-migrate/migrate. Ty umožňují ukládat migrace ve formě SQL souborů nebo Go kódu a aplikovat je programově.

Příklad použití migrací s knihovnou migrate:

import (
    "database/sql"
    _ "github.com/lib/pq" // ovladač 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://uzivatel:heslo@localhost:5432/databaze?sslmode=disable")
    driver, _ := postgres.WithInstance(db, &postgres.Config{})
    m, _ := migrate.NewWithDatabaseInstance(
        "file://migrace",
        "postgres", driver)

    err := m.Up() // aplikovat všechny migrace
    if err != nil && err != migrate.ErrNoChange {
        panic(err)
    }
}

Tímto způsobem migrace pomáhají udržovat databázi aktuální a zjednodušují proces nasazení a aktualizace aplikací.