0

iTunes Enterprise Partner Feedは、「iTunesとApp Storeの完全なメタデータセットのデータフィード」であり、「リレーショナルデータベースを構築するために必要なファイルとスタンドアロンのフラットファイル国とメディアに依存しています。部分的なデータベースダンプをレールアプリに毎日インポートするベストプラクティスは?

私は、このフィード(基本的にはフラットファイルにエクスポートされます)からデータを消費し、フィード(アプリケーション、デベロッパーなど)によって提供されるデータに自分のModelオブジェクト(ユーザー、アクティビティなど) )データは、週単位の完全なエクスポートおよびとして毎日の増分エクスポートとして提供されます。

私はこれを実装する方法には2つのアイデアを持っている:

  1. は私のレールのアプリですべてのモデルを作成し、モデルを使用してcronを介して、毎日、直接私のアプリのデータベースに/更新レコードを挿入します私自身の輸入を書きます私は完全に独立し、このデータベースを維持し、自分のアプリがですべてを保つために#1

私の素朴なアプローチを消費しますRESTのAPIを開く

  • (アプリケーション、開発者など)を作成しましたRailsアプリケーションは、私がEPFから取得しているデータの変更を観察できる必要性に基づいています。たとえば、アプリケーションの説明が更新されている場合、オブザーバーを介してActivityオブジェクトを作成してその更新を追跡できるようにしたいと考えています。

    一方、#2は、私が作成したいくつかの異なるアプリケーションから消費できるデータにスタンドアロンAPIを作成するため、より良いアプローチのように感じます。一方、自分のモデルで直接オブザーバを使用しなくてもデータ変更通知をどのように達成するのかは分かりません。または、自分のモデルで使用できるオブジェクト指向の方法でデータを消費する方法もあります。それは、アプリケーションのデータのためにAPIを照会し、それに対する適切なActive Recordオブジェクトを作成し、それを保存して自分のモデルの1つにリンクできるようにするために、重複した作業がたくさんあるように感じます。

    これを行うための標準的な方法はありますか?完全に欠落していますか?すべてのポインタ?

    編集: Railsエンジンは面白いとは言えますが、それでも各アプリはデータを別々に消費して挿入する必要があります。それはそうDRYのようには聞こえません。 REST APIのようになってきています。 APIからアクティブレコードモデルへのギャップを埋める方法はわかりません。

  • 答えて

    0

    レールエンジンはこれに適しています。 Rails Engineの宝石を作成し、データを消費するためにすべてのモデルとレーキタスクを追加することができます。次に、この宝石を使用するアプリにこの宝石を含めることができます。また、宝石を含むAPIアプリを作成することもできます。あなたは、宝石と相互作用する他のアプリでオブザーバーを作成することができるはずです。

    私はお互いにやりとりするアプリがかなりあります。このアプローチは私にとってはうまくいきます。私はアプリを使用しています。このアプリにはデータを消費するすべてのエンジンが含まれており、このアプリからすべてのcronjobを実行します。私はuse_dbプラグインを使用して、私のアプリが異なるデータベースと通信できるようにします。各エンジンにはuse_dbが依存しており、私はgemの内部にデータベース構成を保持しています。一つの例:

    1. エンジン宝石= transaction_core
    2. この宝石は、ソースからのトランザクションデータを消費し、私のトランザクションデータベースに挿入します。
    3. 宝石は私の中央アプリに含まれていると私は、トランザクション・データを使用する必要があるいくつかの他のアプリではこの宝石を含んでcronの
    4. にrakeタスクを使用してトランザクションデータを引き出します。エンジンは自動的にモデルとデータベース設定をアプリケーションに追加するので、アプリケーションでモデルを使用するために追加の作業は必要ありません。

    私のエンジンを含むアプリ内ではオブザーバーを使用していませんが、動作しない理由はありません。エンジンの場合、モデルはapp/modelsディレクトリにあるかのように動作します。お役に立てれば!

    ささやかなRubyistにはエンジンが含まRailsの3つのプラグインの良い4パートのチュートリアルがあります。
    http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/

    +0

    を私は、これは私が探しているものですかなりわからないんだけど、それは本当に私が聞いた最初のですレールエンジンの私はそれらをより深く見てみるつもりです。ありがとう。 – markquezada

    +0

    エンジンは、おそらくRails 3の私のお気に入りの機能です。基本的には、宝石を使って他のアプリに含めることができるミニレールアプリです。このアプローチは#1と似ていますが、モデルごとに異なるデータベース接続を処理できるプラグインを使用している限り、複数のアプリケーション(#2など)で使用できます。 – johnmcaliley

    +0

    既存のgemを使用してhttps://github.com/igorkasyanchuk/rails_dbのインポートを行うことができます –

    関連する問題