ページ内ナビ
概要
Strong MigrationsはRails/ActiveRecord migrationの危険操作を検知し、既定で実行を止めてより安全な手順を提示するlibraryです。PostgreSQL、MySQL、MariaDBを対象に、長時間lockやapplication errorにつながるDDLをチェックします。現在のversionは2.8.0です。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
危険なDDLをmigration実行時に検知して停止する
column削除・rename・type変更、非concurrent index、foreign key、constraint、backfillなど、長時間lockやruntime errorにつながりやすい操作を検知し、安全な分割手順を提示します。
出典:[2]
databaseごとの安全策とcustom checkをmigration workflowへ組み込む
PostgreSQL、MySQL、MariaDBの差を考慮したcheckを持ち、safe_by_default、custom check、timeout設定、必要時のsafe_assured相当の明示的overrideで運用できます。
出典:[2]
向いている用途
zero-downtime寄りのschema変更をRails deploymentへ定着させたいteamに向く
migration reviewだけに頼らず、危険操作をdevelopment/CIで機械的に止め、deploy→backfill→constraint validation等の段階的変更を標準化したいprojectに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]ankane/strong_migrations — GitHub repository(2026-10-06)
- [2]Strong Migrations — README(2026-10-06)
- [3]Strong Migrations — gemspec(2026-10-06)
- [4]Strong Migrations — CHANGELOG(2026-10-06)
編集部からの補足
migration事故を早期に防げますが、自動判定はraw SQLやbackfillの安全性を保証しません。overrideする箇所ほどlock・transaction・deploy順序を明示的にレビューしてください。
3ステップで試す
- 1
ソースを取得
git clone --depth 1 https://github.com/ankane/strong_migrations.git - 2
リポジトリへ移動
cd strong_migrations - 3
公式手順を確認
READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
成長
成長の推移 · 直近30日
4,449 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 3
- Open PR
- 1
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- bundler-audit2,762 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
Gemfile.lockをRuby Advisory DBと照合し、脆弱gem versionと危険なsourceをCIで検出する
Ruby - mysql22,273 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
RubyからMySQL・MariaDBへ接続し、SQLクエリ・prepared statement・streamingで結果を扱う
Ruby - pg_search1,588 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
PostgreSQLのfull text search・trigram・rankをActiveRecord scopeとしてRails modelへ組み込む
Ruby - BullMQ9,475 Stars
共通タグ 2件 · 共通カテゴリ 2件
QueueとWorkerを分離し、Node.jsのbackground job・retry・schedule・flowを永続化する
TypeScript - Vagrant27,212 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Vagrantfileでprovider差を隠し、portableな開発環境を配布するsource-available tool
Ruby - Kamal14,633 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Docker化したWeb appをSSHでbare metalやcloud VMへ配備し、kamal-proxyでzero-downtime切替を行う
Ruby
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。