我目前正在为一个学校项目创建一个API,一切都很好。我的设置是:Node v10,Postgres,Koa等等...
我现在有这个:
CREATE ROLE sa WITH LOGIN PASSWORD 'some-password.';
CREATE DATABASE master WITH OWNER sa;
\c master;
当init脚本在docker机器中运行时,我得到的输出是这样的:
CREATE ROLE
CREATE DATABASE
You are now connected to database "master" as user "postgres".
所以我把文件改成这样:
CREATE ROLE sa WITH LOGIN PASSWORD 'some-password.';
CREATE DATABASE master WITH OWNER sa;
CONNECT TO master AS main USER sa;
我得到一个语法错误:
STATEMENT: CONNECT TO master AS sa USER sa;
psql:/docker-entrypoint-initdb.d/init.sql:4: ERROR: syntax error at or near "CONNECT"
我在文档中找不到任何地方(或者看起来不太好)如何从.sql文件连接到具有特定用户的数据库。
我如何连接到“master”及其所有者,即.sql文件中的“sa”?
3条答案
按热度按时间uemypmqf1#
你可以在psql中使用这个命令:
jdgnovmf2#
你可以在终端中通过这个命令来实现
k5hmc34c3#
这里我的假设是你有一个名为“a.sql”的SQL文件,并包含文件中的代码行。
现在您正在使用“psql”命令行界面(CLI)运行此脚本,因此您会得到如下消息.
现在,需要注意的是,你已经连接到数据库“主”,因为“\c主”与用户“postgres”,因为你通过了“postgres”用户的凭据。是我就在这里然后,如果是的,那么你必须通过用户和密码为不同的用户,即.“sa”如下。
现在,它将提示输入“sa”用户的密码,最后,您的脚本将运行,您将连接到“sa”用户。