2014-09-06 19 views
1

我有一些初學者關於Symfony的2我不能得到明確的答案,從以前的問題(或許是因爲他們是真正的基本)Symfony的2:更新表架構不反映在phpadmin

  1. 當你創建一個問題新的symfony2項目從命令行和具體的數據庫名稱和密碼,這是爲了自動創建數據庫(你可以在phpmyadmin中看到)或者手動執行此操作。

  2. 由此可以推斷,如果創建了多個實體,然後使用

    doctrine:schema:update 
    

應在指定表中您在項目「parameters.yml」指定的數據庫自動生成文件。

我已經完成「的信條:模式:更新--force」,然後給了我

Updating database schema... 
Database schema updated successfully! "2" queries were executed 

但是沒有創建表。於是,我又試了一次,看到消息會是怎樣......

unknown-ec:35:86:4d:41:5e:symfony simonalice$ php app/console doctrine:schema:update --force 
Nothing to update - your database is already in sync with the current entity metadata. 
unknown-ec:35:86:4d:41:5e:symfony simonalice$ 

所以很明顯學說認爲其在同步 - 但在phpMyAdmin沒有桌子。

明顯完整的初學者的東西....但我會感謝從Symfony 2老兵的一些這方面的指導。

回答

0

回答您的問題:

  1. 沒有,創建一個新的Symfony項目將無法創建數據庫(或連接到它的用戶)。你仍然需要這樣做,我建議你用適當的權限爲你的應用程序創建一個專用的用戶。您需要使用具有管理權限的數據庫用戶來執行此操作。出於安全原因,最好是不要將您的數據庫管理員帳戶與您的應用程序一起使用。要指示教義創建數據庫(一旦您設置了數據庫用戶和連接參數),您可以運行控制檯命令。

  2. 是的,運行doctrine:schema:update控制檯命令將生成您的數據庫實體,但它不會/不能創建您的數據庫。您也可以使用--force選項來應用自上次更新以來所做的更改。這些更新仍然會受到您定義的任何列約束的約束,因此,如果您例如將現有的可空列更改爲not null,那麼如果記錄已存在空值,則會出現錯誤。

希望有所幫助。

+0

非常感謝您的意見黑格。我遇到的問題(我正在經歷一些關於Symfony2的教程)是,它出現在教程中,當從命令行創建一個新項目並指定了所有參數(包括數據庫名稱等)時,數據庫然後在MySQL中創建。從你的答案來看,情況並非如此,當然,當我創建一個新項目時,我必須自己創建數據庫。真正搞砸我的是,在我創建了實體後,如果我'doctrine:schema:update'在phpmyadmin中沒有任何反應 - 沒有創建表格...... – GhostRider 2014-09-07 13:36:10

+0

.....我得到的印象是我的項目不是與MySQL進行「溝通」(反映在phpmyadmin缺乏變化)。它爲我的進步創造了一個障礙。如果你有了解爲什麼這可能我真的感興趣。歡呼 – GhostRider 2014-09-07 13:37:22

+0

應用程序無法與數據庫進行通信當然是可能的。如果您的配置參數錯誤或數據庫駐留的服務器拒絕連接嘗試(例如:阻止端口上的請求),則可能會發生這種情況。診斷此問題的最佳方法是查看日誌文件。 Symfony在'app/logs'目錄中有日誌文件。 Linux系統上的Apache服務器日誌文件通常位於'/ var/log/httpd'中,而mysql日誌文件通常位於'/ var/log /'中。從那裏開始,否則你只會在黑暗中摸索。 – 2014-09-07 14:16:34