iTunes Enterprise Partner Feedは、「iTunesとApp Storeの完全なメタデータセットのデータフィード」であり、「リレーショナルデータベースを構築するために必要なファイルとスタンドアロンのフラットファイル国とメディアに依存しています。部分的なデータベースダンプをレールアプリに毎日インポートするベストプラクティスは?
私は、このフィード(基本的にはフラットファイルにエクスポートされます)からデータを消費し、フィード(アプリケーション、デベロッパーなど)によって提供されるデータに自分のModelオブジェクト(ユーザー、アクティビティなど) )データは、週単位の完全なエクスポートおよびとして毎日の増分エクスポートとして提供されます。
私はこれを実装する方法には2つのアイデアを持っている:
- は私のレールのアプリですべてのモデルを作成し、モデルを使用してcronを介して、毎日、直接私のアプリのデータベースに/更新レコードを挿入します私自身の輸入を書きます私は完全に独立し、このデータベースを維持し、自分のアプリがですべてを保つために#1で
私の素朴なアプローチを消費しますRESTのAPIを開く
一方、#2は、私が作成したいくつかの異なるアプリケーションから消費できるデータにスタンドアロンAPIを作成するため、より良いアプローチのように感じます。一方、自分のモデルで直接オブザーバを使用しなくてもデータ変更通知をどのように達成するのかは分かりません。または、自分のモデルで使用できるオブジェクト指向の方法でデータを消費する方法もあります。それは、アプリケーションのデータのためにAPIを照会し、それに対する適切なActive Recordオブジェクトを作成し、それを保存して自分のモデルの1つにリンクできるようにするために、重複した作業がたくさんあるように感じます。
これを行うための標準的な方法はありますか?完全に欠落していますか?すべてのポインタ?
編集: Railsエンジンは面白いとは言えますが、それでも各アプリはデータを別々に消費して挿入する必要があります。それはそうDRYのようには聞こえません。 REST APIのようになってきています。 APIからアクティブレコードモデルへのギャップを埋める方法はわかりません。
を私は、これは私が探しているものですかなりわからないんだけど、それは本当に私が聞いた最初のですレールエンジンの私はそれらをより深く見てみるつもりです。ありがとう。 – markquezada
エンジンは、おそらくRails 3の私のお気に入りの機能です。基本的には、宝石を使って他のアプリに含めることができるミニレールアプリです。このアプローチは#1と似ていますが、モデルごとに異なるデータベース接続を処理できるプラグインを使用している限り、複数のアプリケーション(#2など)で使用できます。 – johnmcaliley
既存のgemを使用してhttps://github.com/igorkasyanchuk/rails_dbのインポートを行うことができます –