添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
2017-08-24 15:59:22,866 ERROR [localhost-startStop-1] [AbstractUpgradeManager] org.postgresql.util.PSQLException: ERROR: relation "build" does not exist
  Position: 34
org.postgresql.util.PSQLException: ERROR: relation "build" does not exist
  Position: 34
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2310)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2023)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:421)
	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:318)
	at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:281)
	at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:327)
	at com.atlassian.bamboo.upgrade.tasks.validation.PlanKeysCorrectlyFormatted$1.doInHibernateTransaction(PlanKeysCorrectlyFormatted.java:39)
	at com.atlassian.bamboo.upgrade.AbstractBootstrapUpgradeTask.withDatabaseConnection(AbstractBootstrapUpgradeTask.java:69)

Diagnosis

Run the following SQL query to check if there is a search_path configured for the database user:

SELECT r.rolname, d.datname, rs.setconfig
FROM   pg_db_role_setting rs
LEFT   JOIN pg_roles      r ON r.oid = rs.setrole
LEFT   JOIN pg_database   d ON d.oid = rs.setdatabase
WHERE  r.rolname = 'databaseUser' OR d.datname = 'databaseName';

Replace databaseUser and databaseName with the settings in bamboo.cfg.xml

If there is no result, it means that the database user is using the default search_path public

Cause

  • PostgreSQL is using the search_path public by default
  • The database dump is migrated to a custom schema and/or the database user is configured with incorrect search_path

Resolution

Configure the database user to use the correct search_path with the following SQL and restart Bamboo: