我有一个可以使用
创建数据库的安装脚本
(sql ddl)create database if not exist
。
由于Postgres的工作方式不同,因此脚本不起作用。
因此,我为Postgres建立了一个特例,并使用了
(命令行)用于生成数据库的createdb -U ...
命令。
到目前为止,它仍然有效,但是Postgres第二次请求密码。
在this thread之后,我发现了
我可以使用var PGPASSWORD提供密码。
在this thread之后,我想出了一个解决方案:
(php)
exec(' set PGPASSWORD=$password && createdb -U "$username" -h "$host" "$dbname" ')
(简化的转义)
但这会返回错误:
createdb:无法与template1连接:致命:用户»postgres«的密码验证失败(翻译)
我不熟悉命令行及其特征->
我不确定我是否在那儿犯了严重的错误,我很抱歉
我现在将实现一个版本,Postgres第二次询问用户,
但是如果您找到了一种无需用户再次输入密码的解决方案,那就太好了
答案 0 :(得分:0)
为什么要使用操作系统命令?您可以使用SQL执行相同的操作:只需连接到postgres
数据库(或任何其他数据库)并运行
CREATE DATABASE dbname