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.