昨今のlismoa多機能化に伴いRailsプロジェクトが複数に分裂してきました。現在のプロジェクトは以下の4つです。app(本体)batch(バッチ用)api(他システム連携用)admin(管理用)これらのプロジェクト全てで同じDBを参照しています。すると各プロジェクトごとのマイグレーションファイルを同状態に揃えないとDBの完全な整合性が取れないという問題が生じてしまいます。この対応として、今までは定期的に全プロジェクトのマイグレーションファイルとモデルを揃える作業をしていました。これが非常にナンセンスで手間がかかる!マイグレーションファイルが増えすぎててわやくちゃ!ということでRidgepoleの導入に至ったわけです。そもそもRidgepoleとは?スキーマ管理用のコマンドラインツールだそうです。シンプルに言えば簡単にテーブルの作成、変更、削除ができる便利なものです。クックパッドが使ってるから信頼していいでしょう。(盲目)というか作ったのがクックパッドですし。詳しくはこちらを参照してください。例としてusersテーブルを作成します。導入gemが公開されているのでGemfileに記述します。ridgepoleバージョンは必要であれば指定しましょう。installを実行。--skip-migrationテーブルの定義ファイル詳しい記述方法は以下を参照してください。ridgepole1ファイルで管理する場合Schemafileにテーブル定義を記述します。"index_team_id_on_users"end以上で準備完了。テーブルごとにファイル分けする場合/{project}/db配下に“.schema拡張子のファイルを作成します。"index_team_id_on_users"endSchemafileでrequireします。developmentの部分は適宜変更しましょう。成功するとこんな感じになります。備考カラムの削除・追加、テーブルの削除などはスキーマファイルいじるだけでいい。使ってみると思ったより快適で満足しています。システム開発の話から飲みに行こうって話までなんでもどうぞ。新しいECインフラサービス「lismoa」(https://lismoa.com/)の開発運営を行なっています。コメントをキャンセルメールアドレスが公開されることはありません。コメントを受け付けていません。コメントを受け付けていません。コメントを受け付けていません。