Sobes.tech
Junior — Middle

Czy tworzyłeś migracje dla baz danych w swoich projektach?

sobes.tech AI

Odpowiedź od AI

Tak, w projektach w Go często tworzy się migracje do zarządzania zmianami w strukturze bazy danych. Migracje pozwalają na sekwencyjne stosowanie zmian (tworzenie tabel, dodawanie kolumn, indeksów itp.) i ich cofanie w razie potrzeby.

Do pracy z migracjami w Go popularne są biblioteki takie jak golang-migrate/migrate. Umożliwiają one przechowywanie migracji w plikach SQL lub kodzie Go i ich programowe stosowanie.

Przykład użycia migracji z biblioteką migrate:

import (
    "database/sql"
    _ "github.com/lib/pq" // sterownik 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://migrations",
        "postgres", driver)

    err := m.Up() // zastosuj wszystkie migracje
    if err != nil && err != migrate.ErrNoChange {
        panic(err)
    }
}

W ten sposób migracje pomagają utrzymać bazę danych w aktualnym stanie i upraszczają proces wdrażania i aktualizacji aplikacji.