2012-01-31 32 views
4

我如何告訴Symfony的生成表只是一個包?主義模式創建只是一個捆綁

每次我創建了一個包和運行:

php app/console doctrine:schema:create 

它創建我當前的數據庫(具體束)從我所有的捆綁所有表。我不需要那個。

+0

應用程序/控制檯學說:架構:使用這個命令更新--em my_own_entity_manager_name,對我不起作用,它仍然從所有包創建實體。 – 2017-06-05 16:35:13

回答

2

當你創建一個新的包,只需要使用

​​

既然你的模式已經存在。

2

有時使用php app/console doctrine:schema:update --force不能解決問題,因此您可以簡單地評論$ bundle中AppKernel.php中的其他bundle,然後再次使用php app/console doctrine:schema:update --force,它應該可以工作。

不要忘了取消註釋評論束。

1

如果你的包被映射到不同的實體管理器,你可以(或必須)使用的架構更新命令參數「--em entity_manager_name」。

例子:

app/console doctrine:schema:update --em my_own_entity_manager_name 
1

假設你有一個使用MySQL數據庫是在src目錄下的文件夾內,例如一個Bundle:

src/Folder/BundleFolder/ 

而另一個捆綁使用一個PostgreSQL數據庫在你的src目錄中,假設:

src/OtherBundle 

要將原則映射到ce rtain實體管理器使用的conf在您的應用程序/配置/ config.yml文件:如user3580495說

orm: 
    #auto_mapping: true 
    #default_entity_manager: default 
    entity_managers: 
     default: 
      connection: mysql 
      mappings: 
       FolderBundleFolder : ~ 
     other: 
      connection: pgsql 
      mappings: 
       OtherBundle : ~ 

然後,使用命令:

php app/console doctrine:schema:create --em=other --dump-sql 

,看看是怎麼回事PostgreSQL的發生數據庫。

php app/console doctrine:schema:update --em=default --dump-sql 

將顯示將要在MySQL數據庫上執行的SQL命令。

在conf文件文件,不要忘了這樣的評論:

#auto_mapping: true 
#default_entity_manager: default 

這也意味着,當您使用學說update命令,你必須精確的實體管理器每一次,這讓您可以更全面地掌控自己的工作。

不要忘記,--help參數始終是你的朋友爲symfony1.2命令,你也可以找到在文檔中很多信息:

http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html

相關問題