いちいち手作業でDBにつないで順番を間違えないように慎重にSQL実行して…
後で困らないようにどんなSQLを実行したかリリース履歴台帳に記入して…
手作業だからテストという概念もなくて…
これちょっとアナログすぎだしめんどくさいし間違えやすいんじゃねえか?って疑問を持つところがスタート地点
疑問すら持てないなら開発者として必要なセンスが欠けてる
紙とハンコのほうが性に合うオールドタイプならそのまま手作業を続けてどうぞ
ここは未開の原始時代

実行するSQLはファイルにしよう
SQLファイルのアップロードと実行はshellで自動化しよう
shellをソースコードと同じ所でバージョン管理したら便利だな
shellがバグってたらやばいから本番レプリケーションで事前にテストしよう
同じshellを間違えて実行したらやばいから実行履歴もテーブルで管理して多重実行を避けよう
これ全部1つのコマンドでできるように整備しよう
このように不便さを自動化で解消できたならすこしマシになった段階
産業革命の始まり
便利だけど色々と拙くまだまだコスパが悪い

shellは便利だけどオレオレ感が強くて属人生が高く保守しにくいな
なにか開発者間で共通認識となるフレームワークがあれば便利だろうな
MigrationをC#で書きたい場合もあるよな
そもそもshellの実行すらめんどくさいんじゃないか
などなど細かい不満点を解消していって出来上がったのがMigration系フレームワーク
ここがひとまずのゴール
より洗練されてエコな現代テクノロジの集大成