Rails を使用して、最後の移行以降に Rails 以外のデータベースで行われた変更に基づいて移行を自動生成することはできますか?
db:migrate を実行すると schema.rb がデータベースの内容と一致するように変更されることを知っています.... (少なくとも、移行を行わない場合は手動で何らかの方法でデータベースを変更します)。私が疑問に思っているのは、同じメカニズムまたはプロセスの一部として、それらの変更から移行を作成する方法があるかどうかです。
どうもありがとう!
Rails を使用して、最後の移行以降に Rails 以外のデータベースで行われた変更に基づいて移行を自動生成することはできますか?
db:migrate を実行すると schema.rb がデータベースの内容と一致するように変更されることを知っています.... (少なくとも、移行を行わない場合は手動で何らかの方法でデータベースを変更します)。私が疑問に思っているのは、同じメカニズムまたはプロセスの一部として、それらの変更から移行を作成する方法があるかどうかです。
どうもありがとう!
これは、Rails が行うこと、または解決しようとしているものではないと思います。Rails では、移行を通じてこれらの変更を明示的に管理して、データベースを管理 (およびソース管理) できるようにする必要があります。
この宝石があなたが望むものかどうかを確認してください。- https://github.com/pjhyett/auto_migrations
Rails 3 では動作しない可能性があります。DB を直接編集するのでrake db:schema:dump
、schema.rb ファイルを更新するために実行する必要があると思います。
異なる db 変更点間のデルタをキャプチャする場合は、この SO の回答を参照してください: How to generate Rails Migration class automatically from MYSQL database instance? 、途中で彼のステップを繰り返すだけです。