Sobes.tech
Junior — Middle

Criou migrações para bancos de dados nos seus projetos?

sobes.tech IA

Resposta da IA

Sim, nos projetos em Go, é comum criar migrações para gerir alterações na estrutura da base de dados. As migrações permitem aplicar alterações sequencialmente (criação de tabelas, adição de colunas, índices, etc.) e revertê-las se necessário.

Para trabalhar com migrações em Go, são populares bibliotecas como golang-migrate/migrate. Estas permitem armazenar migrações em ficheiros com SQL ou código Go e aplicá-las programaticamente.

Exemplo de uso de migrações com a 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://migrations",
        "postgres", driver)

    err := m.Up() // aplicar todas as migrações
    if err != nil && err != migrate.ErrNoChange {
        panic(err)
    }
}

Assim, as migrações ajudam a manter a base de dados atualizada e simplificam o processo de implantação e atualização de aplicações.