Sobes.tech
Junior — Middle

Da li ste pravili migracije za baze podataka u svojim projektima?

sobes.tech АИ

Одговор од АИ

Da, u Go projektima često se kreiraju migracije za upravljanje promenama u strukturi baze podataka. Migracije omogućavaju redom primenu promena (kreiranje tabela, dodavanje kolona, indeksa itd.) i njihovo povlačenje ako je potrebno.

Za rad sa migracijama u Go popularne biblioteke su kao što je golang-migrate/migrate. One omogućavaju skladištenje migracija u obliku SQL fajlova ili Go koda i njihovu programsku primenu.

Primer korišćenja migracija sa bibliotekom migrate:

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

    err := m.Up() // primeni sve migracije
    if err != nil && err != migrate.ErrNoChange {
        panic(err)
    }
}

Na ovaj način, migracije pomažu u održavanju baze podataka ažurnom i pojednostavljuju proces implementacije i ažuriranja aplikacija.