我有一个可以使用
(sql ddl)创建数据库的安装脚本create database if not exist
。
由于Postgres的工作方式不同,因此脚本不起作用。
因此,我为Postgres构建了一个特例,并使用
(命令行)createdb -U ...
命令生成了数据库。
到目前为止,它仍然有效,但是Postgres第二次请求密码。
在此线程之后,我发现
可以使用var PGPASSWORD提供密码。
在此线程之后,我想出了一个解决方案:
(php)
exec(' set PGPASSWORD=$password && createdb -U "$username" -h "$host" "$dbname" ')
(简化的转义)
但这会返回错误:
createdb:无法与template1连接:FATAL:用户»postgres«的密码身份验证失败(翻译)
我不熟悉命令行及其特性->
我不确定在此是否犯了严重的错误,我很抱歉
现在,我将实现一个版本,在该版本中Postgres会再次询问用户,
但是如果您找到一种解决方案,无需用户再次输入密码,那将是很酷的
为什么要使用操作系统命令?您可以使用SQL执行相同的操作:只需连接到postgres
数据库(或任何其他数据库)并运行
CREATE DATABASE dbname
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句