7

StackOverflow で既にこの影響に関するいくつかの質問があることは知っていますが、それらはかなり時代遅れになる傾向があり、次のシナリオで移行がどのように機能するかについて十分に対処していません。これはかなり一般的です。

  • Railsで実装されたある種のアプリケーションがあります。
  • データ用の何らかの管理アプリケーションがあり、それは Rails に実装された別のアプリケーションです。
  • どちらのアプリケーションも同じデータベースとモデルで動作します。

私の質問は、これらのアプリケーションの両方がモデル コードを複製する必要がないように、モデルを因数分解する最良の方法は何ですか?

私たちは次のことに関心があります。

  • 共有モデルの場合、データベースの移行はどこに置くべきですか?
  • 個々のアプリケーションが共有モデルの上に追加のモデルを追加したい場合はどうすればよいでしょうか? これらの移行はどこに住んでいますか?
  • 既存の移行を提案された共有移行スキームに移行する最善の方法は何ですか?

ありがとう。

4

1 に答える 1

1

これが THE アプローチかどうかはわかりません。他のアイデアも見てみたいと思いますが、このモデルに一致する製品の 1 つで私たちが行っていることは次のとおりです。

共有モデルの場合、データベースの移行はどこに置くべきですか?

すべての移行は管理システムの下に保持されます。それらが2回存在する必要はないので、そこに行きます。

個々のアプリケーションが共有モデルの上に追加のモデルを追加したい場合はどうすればよいでしょうか? これらの移行はどこに住んでいますか?

私たちはすべてのモデルを共有しています。たとえば、現時点では 1 つのアプリケーションにのみ関連する可能性がありfavourited_itemsます。概念はエンド ユーザーにとってのみ重要な場合があります。しかし、後日、管理者はどのアイテムが最も頻繁にお気に入りに登録されているかを知りたいと思うかもしれません。

第 2 に、コンソールを介して何かを調査したい場合、別のアプリケーションにアクセスする必要がないのは非常に便利です。両方のアプリケーションがすべてのテーブルのモデルを持っているわけではないからです。

アプリケーションごとに異なる共有モデルの機能は、より多くのコンテキストを含めるために拡張された rails 環境変数を検出します。例えば:if Rails.env == 'admin_production'

既存の移行を提案された共有移行スキームに移行する最善の方法は何ですか?

繰り返しになりますが、移行は一度だけ存在する必要があり、共有データベースは既に実行されているものを認識しているため、移行の名前を変更しない限り、場所を選択してファイルを移動するだけで済みます。

于 2016-03-24T15:19:41.057 に答える