2

より大きなソリューションの一部として Rails アプリを開発しています。このソリューションには、中心に mySQL データベースがあり、将来的には他の Web サービスやコネクタが接続される予定です。

まず、Rails の規則に従って、データ、列名、関係をモデル化する予定です。しかし、実際のデータベースへのテーブルからテーブルへのマッピングを行うために「 Establish_connection 」を使用し、レール自体で移行を使用しないことを期待しています。

私の質問は、レール アプリを外部データ ソースにアタッチしてデータ モデルを継続的に変更するためのベスト プラクティスは何かということです。

model.rb ファイルを新しいフィールドとリレーションシップで手動で更新するだけで、確立を介してレールが各テーブルに接続できるようにする必要がありますか?

データ モデルで変更された可能性のある変更されたフィールドや関係を同期できるツールはありますか? 他の開発者の 1 人は Symfony に精通しており、そのようなものを使用したことがあると述べています。データベースをリバース エンジニアリングするために見つけた gem は、古いか、フィールドや関係を考慮せずに .rb ファイルをスタブ化しただけのように見えました。

ありがとう!

4

1 に答える 1

3

データモデルで変更された可能性のある変更されたフィールドや関係を同期できるツールはありますか?

設計上、Ruby on Railの移行は、RoRモデルに変更が加えられるたびにデータベースを段階的に更新することを目的としています。

私があなたを正しく理解しているなら、あなたは反対方向の変化を文書化することに興味があります。あなたがそうするなら、反移住;)。もしそうなら、移行はこれに適していません。

データベースの変更がどのように文書化されているかに応じて(このWebアプリはより大きなマシンの歯車であるとおっしゃっています)、データベースに変更を加えることを目的としているため、移行をまとめて中止することをお勧めします。そうは言っても、データベースの変更を文書化するために移行を使用することを強くお勧めします。

問題に戻ります。rake db:migrate(移行なしで)単にファイルを更新するだけで、これについて間違っている可能性がありdb\schema.rbます。schema.rb呼び出し時に常に最新のDB構造を反映します。残念ながら、それは魔法が止まるところです。Rails Webアプリは、モデルのプロパティ名に影響を与える場合、DBメタデータの変更を反映するように更新する必要があります。

model.rbファイルを新しいフィールドとリレーションシップで手動で更新してから、レールが確立を介して各テーブルに接続できるようにする必要がありますか?

はい、私見:)

HTHと幸運。

于 2013-01-29T15:03:47.677 に答える