GitHubCI+PostgreSQL:数据库创建脚本运行后,数据库用户仍然无法登录



我需要在GitHubActions工作流中创建一个PostgreSQL数据库,所以我想出了以下yml片段:

jobs:
build:
name: DB
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Create DB
run: |
sudo apt update --yes
sudo apt install postgresql --yes
sudo service postgresql start
sudo -u postgres createdb somedb
sudo -u postgres psql -d somedb -a -q -f db/createDBCommands.sql
sudo -u postgres psql -c "CREATE USER someDbUser WITH PASSWORD 'localDevPassword';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE somedb to someDbUser;"

以上操作正常(没有抛出错误(。但是,当我想在访问数据库的同一CI作业中运行测试时,我会得到以下错误:

28P01:用户的密码验证失败"someDbUser";

代码中使用的连接字符串为:"Server=localhost;Port=5432;Database=somedb;User Id=someDbUser;Password=localDevPassword"

我试着在连接字符串中的密码中添加双引号(正确地转义它们,但仍然不起作用(。

是我必须授予用户从127.0.0.1主机访问权限吗?如果是,如何使用命令而不是修改配置文件?(假设我使用CI。(

如果您不一定需要新用户,您可以更改超级用户密码并使用该用户进行连接。

- name: Create DB
run: |
sudo apt update --yes
sudo apt install postgresql --yes
sudo service postgresql start
sudo -u postgres createdb somedb
sudo -u postgres psql -d somedb -a -q -f db/createDBCommands.sql
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'localDevPassword';"

您可以使用以下连接字符串连接到它:

"Server=localhost;Port=5432;Database=somedb;User Id=postgres;Password=localDevPassword"

相关内容

  • 没有找到相关文章

最新更新