我开始学习Symfony2,我想使用Doctrine在我的postgres数据库中创建表。我安装了postgres并遵循以下步骤:
sudo -i -u postgres
我创建了一个名为test并键入superuser的用户createuser --interactive
createdb test
我用密码测试创建了用户测试
adduser test
symfony2中的parameters.yml如下所示:
parameters:
database_driver: pdo_pgsql
database_host: 127.0.0.1
database_port: null
database_name: test
database_user: test
database_password: test
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
我也有这样的实体:
<?php
namespace AppBundle'Entity;
use Doctrine'ORM'Mapping as ORM;
/**
* @ORM'Entity
* @ORM'Table(name="product")
*/
class Product
{
/**
* @ORM'Column(type="integer")
* @ORM'Id
* @ORM'GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM'Column(type="string", length=100)
*/
protected $name;
/**
* @ORM'Column(type="decimal", scale=2)
*/
protected $price;
/**
* @ORM'Column(type="text")
*/
protected $description;
}
然后我在终端中键入了这个赞扬:
php app/console doctrine:generate:entities AppBundle
我收到了这个警告:
[Doctrine'DBAL'Exception'ConnectionException]
An exception occured in driver: SQLSTATE[28000] [1045] Access denied for us
er 'test'@'localhost' (using password: YES)
[Doctrine'DBAL'Driver'PDOException]
SQLSTATE[28000] [1045] Access denied for user 'test'@'localhost' (using pas
sword: YES)
[PDOException]
SQLSTATE[28000] [1045] Access denied for user 'test'@'localhost' (using pas
sword: YES)
我能做些什么来解决这个问题?
编辑:
我意识到我连接到了mysql数据库,我不知道为什么。我该如何更改?
我们的一个开发人员上周遇到了这个问题。
你的parameters.yml看起来不错,但如果你有"标准"的config.yml,它不会指定database_driver
#app/config/config.yml
[...]
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%" # <---- Add this line ;)
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
[...]