在文档中它说,
如果要在不选择数据库的情况下创建连接,则 可以省略数据库名称:
$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));
}