我写了一个sql文件,里面有一些我想在我的数据库中做的插入。
这里有一个例子,它是由什么组成的:
-- User
INSERT INTO users (user_id, credit, email, passwd, alias_login, user_id)
VALUES (1, 250, 'test@test.com', '123456', '1111', 'admin');
我还写了一个批处理脚本,它安装我的数据库之前,我想在安装后,把一些数据里面与此批处理脚本内的SQL脚本。
我已经探索了所有的选项,为了完全自动化,我需要使用字符串连接到我的数据库,以避免像这样输入密码:
C:\PROGRA~1\PostgreSQL\15.2\bin\psql.exe "postgres://mydbadmin:mydbadminpasswd@localhost:5432/mydb"
但是我想输入的是我的sql脚本,考虑到这个字符串方法,我不能使用-f选项或任何-c "\i..."的东西。它只是忽略了命令。
我也试过这个,但根本不起作用:
type %cd%/myscript.sql | C:\PROGRA~1\PostgreSQL\15.2\bin\psql.exe "postgres://mydbadmin:mydbadminpasswd@localhost:5432/mydb"
2条答案
按热度按时间lyfkaqu11#
psql -c ***<command>***
可以很好地使用连接字符串URL:piv4azn72#
您可以使用
PGPASSWORD
environment variable或.pgpass
file(Windows上为pgpass.conf
)。使用
PGPASSWORD
注意:您可能需要take measures so that it doesn't stay in your Bash history。
cmd.exe
):使用
pgpass
在Linux上,文件应为
$HOME/.pgpass
。在Windows上,它是%APPDATA%\postgresql\pgpass.conf
。这是一个纯文本文件,格式如下:
例如: