我在使用Doctrine在Symfony3中運行功能測試時遇到了麻煩。 我有兩個捆綁組織的代碼,需要由一個EntityManager訪問存儲在兩個不同MySQL數據庫中的實體。 要做到這一點,所有的實體有一個「模式」標註在他們的定義是這樣的:Symfony/Doctrine:Entity「schema」註釋與環境無關?
/**
* @ORM/Table(name="tablename", schema="schema")
* @Entity(...)
*/
如果沒有這個設置,它一直是我的經驗,教條模式:創建工具無法正確地創建在正確的數據庫中的實體。 但是看起來,模式註釋不被認爲是依賴於環境的。
因此,當我想運行需要加載燈具的功能測試時,ORMPurger會嘗試清除schema.tablename,它應該使用表/模式「test_schema」。
是否有任何方法來保留模式註釋但使其依賴於環境,以便在環境「測試」時使用不同的模式?
編輯:
看來,用「模式」的註釋是實體非常可怕各地,當您使用不同的Symfony環境。至少在與MySQl結合使用時,至少我認爲這是原因,因爲MySQL實際上並不支持模式。 每一個Symfony或Doctrine命令我試圖從字面上理解模式註釋,而不管--env設置如何。