Ответ
Миграция — это процесс изменения структуры базы данных (схемы) с помощью скриптов, которые последовательно применяют изменения (создание таблиц, добавление столбцов и т.д.). В Go популярны инструменты вроде golang-migrate/migrate или goose.
Пример миграции с golang-migrate:
// 000001_create_users_table.up.sql
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL
);
// 000001_create_users_table.down.sql
DROP TABLE users;
Ключевые особенности:
- Версионирование (каждая миграция имеет номер)
- Возможность отката (up/down)
- Поддержка транзакций
- Интеграция с CI/CD
Миграции помогают синхронизировать структуру БД между окружениями (dev, prod) и командой разработчиков.