Ответ
Да, писал миграции в 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-файлы, так и программируемые миграции, если требовалась сложная логика.