2016-03-08 111 views
0

在它说的文件,创建PostgreSQL数据库使用CakePHP 3

如果你想创建一个没有选择数据库您 可以忽略数据库名称的连接:

$ DSN =“MySQL的://根:密码@本地/';您现在可以使用连接对象执行创建/修改数据库的查询。对于 创建数据库的示例:

$ connection-> query(“CREATE DATABASE IF NOT EXISTS my_database”);

http://book.cakephp.org/3.0/en/orm/database-basics.html#creating-databases

然而,这当然是不适合的PostgreSQL工作。有没有人有你如何做同样的事情,但与PostgreSQL的例子?

我试过各种方法,但几乎所有的人都给我这个错误。

Error: SQLSTATE[08006] [7] FATAL: database "user='MyPGUsername'" does not exist 

注意:这个错误出现,即使我创建数据库MyPGUsername

+0

您的DSN告诉cakePHP使用MySQL数据库。如果你有一个在你的本地主机上运行,​​那么它连接到它。 – greg

+0

dsn来自cakephp文档,而不是来自我的代码。我已经尝试了一百万个不同的dsn,他们都会给我描述的错误 –

回答

0

如果这可能会帮助其他人,我只是通过执行php而不是任何CakePHP方法来解决此问题。

$sql = 'CREATE DATABASE ' . $dbName . ' WITH TEMPLATE=' . $config['dbtemplate'] . ' ENCODING=UTF8'; 
$query = pg_query($connection, $sql); 
pg_close($connection); 
if($query){ 
    return true; 
} else { 
    throw new Exception(pg_last_error($connection)); 
}