2016-08-15 38 views
0

我是Sylius的新手,並且首次在MAMP Pro上配置網站。我通過Composer安裝了Sylius,但意識到我在安裝過程中提供的數據庫憑據不正確。在此之後,我走進應用程序/配置/ parameters.yml按文件,並更新下列憑證:Sylius數據庫憑證不更新

database_driver: pdo_mysql 
database_host: localhost 
database_port: null 
database_name: mydb 
database_user: root 
database_password: root 

發生了什麼事是我每次嘗試訪問該網站時,它拋出一個500錯誤。在檢查我的日誌,每個我試圖訪問它的時候,我得到訪問的錯誤被拒絕到DB:

[15-Aug-2016 13:49:34 America/New_York] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43 

奇怪的是錯誤日誌也顯示了這一點:

vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(41): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=127....', 'root', 'secret', Array) 

這些是舊的憑據(注意密碼'祕密'而不是'root',主機'127.0.0.1'而不是'localhost'。看起來,儘管使用正確的證書更新了我的parameters.yml,Sylius贏得了不要停止嘗試連接我在安裝過程中使用的原始憑據。是否有另一個文件可以存儲在這個文件中在文檔中沒有提及?它能緩存舊的證書,需要一些清理嗎?我對這裏發生的事情感到不知所措。

編輯

我也試着更新應用程序/配置/ parameters.yml.dist用正確的憑據,沒有效果。

編輯2

我做這個項目對我的舊數據庫的名稱的整個搜索,並且每個實例都更新爲新的數據庫名稱。沒有引用舊數據庫名稱的文件。然後我嘗試運行:

php app/console cache:clear --env=dev --no-debug 

,並引發錯誤:

[Doctrine\DBAL\Driver\PDOException]            

SQLSTATE [08006] [7] FATAL:數據庫 「old_database_name」 不存在

儘管old_database_name沒有被引用在任何文件中。然後,如果我在運行緩存清除後搜索old_database_name,則每次都會用舊名稱重新覆蓋app/cache/de_/ap_DevProjectContainer.php中的新數據庫名稱。在我覆蓋它的每個實例之後,我甚至無法弄清楚它從哪裏獲取舊的數據庫名稱。這裏發生了什麼事??

回答

1

默認的Sylius配置使用不同的數據庫進行生產和開發。在你的情況下,這將從prod的sylius和開發環境_dev被追加到數據庫名稱。這是預期的行爲,而不是一個錯誤。

您可以在app/config/config_dev.yml結束時找到配置。如果刪除以下行,則兩個環境都使用相同的數據庫。

doctrine: 
    dbal: 
     dbname: %sylius.database.name%_dev 

https://github.com/Sylius/Sylius/issues/2362

0

在這種情況下,old_database_name與我的新數據庫名稱相同,只是它包含後綴'_dev'。我現在意識到這是因爲我處於開發環境。我發現刪除這個後綴似乎沒有任何簡單的方法,所以我只是想和它一起滾動。仍然想回答如何消除這個問題,但現在我已經回答了我自己的問題。