2011-03-01 123 views
1

在生產服務器上配置symfony項目時遇到一些問題。當我運行命令主義--build --all - 並且加載它給我的錯誤在生產環境:Symfony部署問題

 
>> doctrine Dropping "doctrine" database 
PHP Notice: Undefined index: dbname in /var/www/sf_project/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1472 

Notice: Undefined index: dbname in /var/www/sf_project/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1472 
>> doctrine SQLSTATE[42000]: Syntax error or access violation: 1064 You have an erro...e right syntax to use near '' at line 1. Failing Query: "DROP DATABASE " 
>> doctrine Creating "dev" environment "doctrine" database 
PHP Notice: Undefined index: dbname in /var/www/sf_project/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1439 

但是錯誤後,成功創建表。但是如果我第二次運行該命令,它會在創建表的過程中部分地失敗。

我已經爲生產環境正確更改了我的database.yml配置。這裏是:

 
all: 
    doctrine: 
    class: sfDoctrineDatabase 
    param: 
     dsn: mysql:host=localhost;dbname=sf_project 
     port: 3306 
     username: root 
     password: mainserver 

它的工作權在當地的環境,雖然。 有人可以對此有所瞭解嗎?

編輯說明:將'/cache//prod/config/config_databases.yml.php'文件的內容添加爲'xzyfer'建議的內容。

這裏的內容:

 

return array(
'doctrine' => new sfDoctrineDatabase(array (
    'dsn' => 'mysql:host=localhost; dbname=sf_project', 
    'port' => 3306, 
    'username' => 'root', 
    'password' => 'mainserver', 
    'name' => 'doctrine', 
)),); 

回答

1

嘗試:

./symfony doctrine:build --all --and-load --env=prod 
+0

@xzyfer:由於它已經刪除了未定義指數的錯誤消息。但是在刪除和創建數據庫時出現另一個SQL錯誤:'> doctrine刪除「doctrine」數據庫 >> doctrine SQLSTATE [42000]:Sytax錯誤或訪問提示:1064您在您遇到錯誤... n在第1行附近使用正確的語法。失敗的查詢:「DROP DATABASE」 >> doctrine創建「prod」環境「doctrine」數據庫 >> doctrine SQLSTATE [42000]:語法eror或access violtion:1064您有一個錯誤在你...在第1行附近使用正確的語法。失敗的查詢:「CREATE DATABASE」 – med 2011-03-01 09:12:27

+0

你清除了緩存嗎?該錯誤實質上是說你已經在你的database.yml中給出了一個dns名字。試試./symfony cc首先是 – xzyfer 2011-03-01 09:53:35

+0

你的緩存是否可寫? – cuhuak 2011-03-01 11:38:17