Что такое миграции БД?

Junior
1.2k просмотров
AFK Offer AI

Миграции — версионирование схемы базы данных. Каждая миграция — SQL-файл с изменениями (CREATE TABLE, ALTER, ADD COLUMN) и откатом. Применяются последовательно, состояние отслеживается в специальной таблице.

-- 001_create_users.sql
-- +goose Up
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    email VARCHAR(255) NOT NULL UNIQUE
);

-- +goose Down DROP TABLE users;

В Go популярные инструменты: goose, golang-migrate. Миграции коммитятся в репо и применяются при деплое: goose up. Правила: никогда не редактируй старые миграции, только создавай новые. Для отката — goose down. На проде всегда делай бэкап перед миграцией.

Следующий вопрос

Что такое mutex?