Писал ли миграции БД

«Писал ли миграции БД» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, писал миграции в Go с использованием популярных библиотек, таких как golang-migrate/migrate или pressly/goose.

Пример миграции с golang-migrate:

-- +goose Up
CREATE TABLE users (
    id UUID PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

-- +goose Down
DROP TABLE users;

Или через Go-код с migrate:

m, err := migrate.New(
    "file://migrations",
    "postgres://user:pass@localhost:5432/db?sslmode=disable",
)
if err != nil {
    log.Fatal(err)
}
if err := m.Up(); err != nil {
    log.Fatal(err)
}

Использовал как SQL-файлы, так и программируемые миграции, если требовалась сложная логика.