Что такое миграция

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

Ответ

Миграция — это процесс изменения структуры базы данных (схемы) с помощью скриптов, которые последовательно применяют изменения (создание таблиц, добавление столбцов и т.д.). В 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) и командой разработчиков.