DoctrineとSymfony3で機能テストを実行するのに問題があります。 2つの異なるMySQLデータベースに格納されたエンティティを持つ1つのEntityManagerによってアクセスされる必要のある2つのバンドルでコードを編成しました。 はこれを達成するために、すべてのエンティティは次のように、彼らの定義では、「スキーマ」注釈を持っている:作成ツールを正しく作成することはできません。Symfony/Doctrine:エンティティ "スキーマ"アノテーションは環境に依存しませんか?
/**
* @ORM/Table(name="tablename", schema="schema")
* @Entity(...)
*/
この設定を行わないと、それはDoctrineのスキーマことを、私の経験をされています適切なデータベース内のエンティティ。 しかし、スキーマのアノテーションは環境に依存しないと考えられます。
したがって、フィクスチャをロードする必要のある機能テストを実行する場合、ORMPurgerはschema/table/schema "test_schema"を使用するschema.tablenameを削除しようとします。
スキーマ注釈を保持する方法はありますか?環境に依存するようにする方法はありますか?環境が「テスト」のときに別のスキーマが使用されるようにしますか?
EDIT:
あなたが別のsymfonyの環境を使用しているとき、エンティティの「スキーマ」注釈を使用すると、すべての周りはかなりひどいであることが表示されます。少なくともMySQlと組み合わせて使用すると、少なくともそれが理由だと思います.MySQLは実際にスキーマをサポートしていないからです。 すべてのSymfonyまたはDoctrineコマンド--env設定に関係なく、スキーマの注釈を文字通り取ろうとしました。