使用 CakePHP 3 创建 Postgresql 数据库


Creating a Postgresql Database with CakePHP 3

在文档中它说,

如果要在不选择数据库的情况下创建连接,则 可以省略数据库名称:

$dsn = 'mysql://root:password@localhost/';您现在可以使用您的 连接对象,用于执行创建/修改数据库的查询。为 创建数据库的示例:

$connection->query("如果不存在则创建数据库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,也会出现此错误。

如果这可能对其他人有所帮助,我只通过做 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));
}