2011-03-01 125 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