0

http://github.com/muness/migration_sql_generatorを見たことがありますが、特定の重要な操作について MySQL で適切に動作しません。Rails の移行中に生成された sql をキャプチャする他の方法はありますか?

私が尋ねている理由は、私の会社の技術サポートによって維持されている (開発者が触れたことがない) ため、運用サーバーで移行を実行できないためです。開発者は JRuby on Rails の war ファイルを技術サポートに提供し、Tomcat 経由でデプロイします。しかし、本番環境でマイグレーションを実行するためだけに JRuby と Rails をインストールするよう技術サポートを説得することは、決して容易なことではありません。展開を非常にシンプルに保ち、依存関係をできるだけ少なくしたいと考えています。

war ファイルと db の変更を含む sql スクリプトを単純に提供したいと考えています。

4

2 に答える 2

1

ある種のツールを使用して、2 つのデータベースの差分を生成できる場合があります。ここで質問があります。

移行を実行した直後に、テスト データベースを開発データベースと比較すると、おそらく最も簡単な方法です。そのために rake タスクを追加する価値さえあるかもしれません。そのrakeタスクを移行に依存させると、移行rake db:migrateするたびに差分を生成する代わりに新しいタスクを使用できます。

于 2010-09-14T21:38:28.297 に答える
0

実際に、Activerecord の sql 実行メソッドにモンキー パッチを適用して、すべての sql をログ ファイルに出力する rake タスクを作成することになりました ( log/database.log)。db:migrateしたがって、タスクは次のように直前に実行できますrake db:log db:migrate。その後、関連するステートメントを抽出してファイルに入れ、db/sql_migrations/<migration name>.sql準備ができたらデータベース管理者にそれを実行させることができます。

ありがたいことに、私は仕事を変えましたが、もうその面倒なプロセスに対処する必要はありません. :)

于 2011-03-10T19:58:02.103 に答える