С выходом Go 1.16 появился пакет embed. Теперь файлы миграций не нужно таскать в контейнере рядом с бинарником, их можно зашить внутрь него. 
Для миграций SQLite я использую свой велосипед 🚴♀️, который успешно скопировал с 
https://github.com/jackc/tern 🤫
Реализация довольно проста. 😏
Файлы с разрешением .sql сортируются, потом каждый файл читается, и в нём ищется дивайдер, который разбивает файл миграции на up/down. 
Потом проверяется наличие специальной таблицы, которую мигратор создаёт, для того что бы держать информацию об актуально состоянии схемы. 
Проверяем версию схемы, открываем транзакцию и начинаем накатывать. В случае фейла пытаемся откатить назад. 
#db #sqlite #go