当在 Symfony 中时,我尝试通过原则创建数据库:database:create 它会抛出以下异常:
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[08006] [7] FATAL: database "tm_ootb" does not exist
我是否遇到了错误,或者我在配置中遗漏了某些内容。
这是我的 dbal 配置:
dbal:
driver: pdo_pgsql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
原来是Postgresql的权限情况。根据您在参数上配置的用户级别,您将面临这种情况。
当使用也拥有名为 postgres 的管理数据库的 postgres 超级用户帐户连接到 Postgres 时,完全没有问题,因为它发出以下命令:
psql -U postgres
没问题,因为用户和数据库存在,之后发出“createdb”命令。但是,当使用不拥有数据库或不是超级用户的任何其他用户时,它会抛出提及错误。 Doctrine 应该有办法避免此类错误。
希望这对其他人有用。