如何在 azure 管道中创建 postgres 数据库?
How to create a postgres database in the azure pipeline?
我在我的 Azure 管道中使用 windows-最新的主机代理来构建和打包我的 Maven spring 启动 Java 项目。作为 Maven 的一部分,它 运行s 针对 window 主机代理中包含的 postgres 数据库进行了测试。但是,如何在postgres服务器中创建数据库?
我可以通过将 spring 数据源 URL、用户名和密码指定为系统属性来连接到数据库,这工作正常(否则控制台日志中显示错误,它无法连接)。
我可以使用包含 SQL 的文件 schema.sql 在应用程序启动期间通过 Spring 执行数据库初始化 运行。但是,Postgres 没有默认的“如果不存在则创建数据库”。
因此,我尝试使用 psql 在脚本中创建数据库。我在 SO 上找到了以下命令来创建数据库并尝试 运行 在脚本中:
- script: |
"C:\Program Files\PostgreSQL\bin\psql" -c "CREATE DATABASE default" "user=postgres dbname=postgres password=root"
displayName: Creating DB
但是,它会导致控制台日志中出现以下错误:
ERROR: syntax error at or near "default"
LINE 1: CREATE DATABASE default
^
##[error]Cmd.exe exited with code '1'.
Finishing: Creating DB
请就创建数据库提出一些建议?还有上面的错误?
maven 任务:
- task: Maven@3
name: maven_package
displayName: Maven package
inputs:
goals: "package"
mavenPomFile: "backend/pom.xml"
options: '--settings backend/.mvn/settings.xml -DmygetUsername=$(mygetUsername) -DmygetPassword=$(mygetPassword) -Dspring.datasource.url=jdbc:postgresql://localhost:5432/default -Dspring.datasource.username=postgres -Dspring.datasource.password=root'
mavenOptions: "-Xmx3072m $(MAVEN_OPTS)"
javaHomeOption: "JDKVersion"
jdkVersionOption: "1.13"
mavenAuthenticateFeed: true
我已经重现了你的问题:
此错误的原因是您无法创建名为 default
的数据库。 default
是 Postgre 中的保留字。您可以单击 this document 查看 SQL 个关键字的列表以及它们是否在 Postgres 中保留SQL。
我在我的 Azure 管道中使用 windows-最新的主机代理来构建和打包我的 Maven spring 启动 Java 项目。作为 Maven 的一部分,它 运行s 针对 window 主机代理中包含的 postgres 数据库进行了测试。但是,如何在postgres服务器中创建数据库?
我可以通过将 spring 数据源 URL、用户名和密码指定为系统属性来连接到数据库,这工作正常(否则控制台日志中显示错误,它无法连接)。
我可以使用包含 SQL 的文件 schema.sql 在应用程序启动期间通过 Spring 执行数据库初始化 运行。但是,Postgres 没有默认的“如果不存在则创建数据库”。 因此,我尝试使用 psql 在脚本中创建数据库。我在 SO 上找到了以下命令来创建数据库并尝试 运行 在脚本中:
- script: |
"C:\Program Files\PostgreSQL\bin\psql" -c "CREATE DATABASE default" "user=postgres dbname=postgres password=root"
displayName: Creating DB
但是,它会导致控制台日志中出现以下错误:
ERROR: syntax error at or near "default"
LINE 1: CREATE DATABASE default
^
##[error]Cmd.exe exited with code '1'.
Finishing: Creating DB
请就创建数据库提出一些建议?还有上面的错误?
maven 任务:
- task: Maven@3
name: maven_package
displayName: Maven package
inputs:
goals: "package"
mavenPomFile: "backend/pom.xml"
options: '--settings backend/.mvn/settings.xml -DmygetUsername=$(mygetUsername) -DmygetPassword=$(mygetPassword) -Dspring.datasource.url=jdbc:postgresql://localhost:5432/default -Dspring.datasource.username=postgres -Dspring.datasource.password=root'
mavenOptions: "-Xmx3072m $(MAVEN_OPTS)"
javaHomeOption: "JDKVersion"
jdkVersionOption: "1.13"
mavenAuthenticateFeed: true
我已经重现了你的问题:
此错误的原因是您无法创建名为 default
的数据库。 default
是 Postgre 中的保留字。您可以单击 this document 查看 SQL 个关键字的列表以及它们是否在 Postgres 中保留SQL。