2012-01-09 12 views
2

Symfony2/Doctrineに問題があります。Symfony2/Doctrine - MysqlとSqliteエンティティへの参加

私は不可能なことをしようとしています。関係を介して2つの別々のデータベースに参加しています。

  • 私はmysqlデータベースとsqliteデータベースを持っています。
  • 私は2つのバンドルを持っています(各データベースのそれぞれに1つずつ話しています)
  • 2倍のエンティティマネージャがあり、正しく動作しています。

それぞれのデータベースにアクセスすることができます。それぞれのデータベースにアクセスできます。それぞれのバンドルは、他のバンドルのEntity Managerにアクセスできます。

Sqliteデータベースは別のアプリケーションにロックダウンされているため、そのまま使用する必要があります。 mysql-databaseは私が必要とするものは何でも行うことができます。私は、「タスク」テーブルを持っているMySQLデータベースでは、「プロジェクト」表

  • を持っているSQLiteのデータベースで

    • 1つのプロジェクトには多くのタスクがあります。

    マイタスクテーブルにはproject_idフィールドがあり、これにはprojectsテーブルのIDが設定されています。私がしようとしていることは、この関係を適切に働かせることです。そうすれば、通常の状況では、通常、小枝でできることをするために小枝を使うことができます。私。 {{project.tasks}}または{{tasks.projects}}のように呼び出します。

    現時点では、プロジェクトコントローラにいくつかのコードがあり、タスクにビューを渡したり、逆もあります。これはうまくいきますが、かなり面倒です。私が本当にやりたいことは、ORMマッピングを各エンティティ間で正しく動作させることです。

    Doctrine/Symfony2はこれを行うことができますか、それとも不可能にしようとしていますか?

    ご協力いただければ幸いです。

    ここに私のconfig.ymlファイルからの抜粋があります。

    orm: 
         auto_generate_proxy_classes: %kernel.debug% 
         default_entity_manager: agile 
         entity_managers: 
          glue: 
           connection:  glue 
           mappings: 
            WebplaceGlueBundle: ~ 
          agile: 
           connection:  agile 
           mappings: 
            WebplaceAgileBundle: ~ 
    
  • 答えて

    1

    我々はOpenSkyで同様の問題を抱えている:我々はMongoDBのに保存されているいくつかのデータを持っている、といくつかは、MySQLに保存されています。私たちは、STOFのDoctrineExtensionsバンドルに拡張機能を使用する:

    https://github.com/opensky/DoctrineExtensionsBundle/tree/orm2odm_references_current

    これは、私たちはODMおよびORMの間@Gedmo\ReferenceOne注釈を追加することができます。これを2つのORM接続の間で直接使用することは可能かもしれませんが、そうでなければ、異なるパーシスタンスレイヤ間の関係を処理するための出発点となります...

    /** 
    * @Gedmo\ReferenceOne(
    *  type="document", 
    *  class="MyBundle\Document\User", 
    *  identifier="userId" 
    *) 
    */ 
    
    +0

    おかげでジャスティン、私は直接モデルORMファイルのそれぞれで長い会社\ SomethingBundle \エンティティ\ SomeEntity表記を使用して相互間のエンティティのマッピングを試してみた返信メイトのため おかげで、 、それたとえエンティティが別々のデータベースにあっても、それぞれのエンティティがそれ自身のデータベースノータータを見ているように見えます。私はマップされたスーパークラスについてのエラーメッセージの束を得ます... 私は古いコントローラのハックにそれを働かせるために辞職しなければならないでしょう..一口.. – egruz

    +0

    こんにちは、この問題についてのニュース? – neuromancer

    関連する問題