Can not restore Jira Server backup in Jira Cloud if Portfolio data is present on Server

XMLWordPrintable

    • 2
    • Severity 3 - Minor

      Summary

      Due to different column names in the AO_D9132D_TEAM_EX_SPRINTS table, imports from Jira Server to Jira Cloud will fail when the Server instance has Portfolio data

      Steps to Reproduce

      1. Generate a backup of Jira Server instance with Portfolio data present
      2. Import backup in to a Cloud instance

      Expected Results

      Import is completed succesfully

      Actual Results

      Following errors show in logs:

      2018-04-20 14:14:08.500	ERROR	com.atlassian.jira.bc.dataimport.PluginDataImportService	Error attempting to import Plugin Data backup	Failed to import sequence data for AO_D9132D_TEAM_EX_SPRINT belonging to com.atlassian.jpo	com.atlassian.rdbms.dbimportexport.runner.api.ImportExportException: Failed to import sequence data for AO_D9132D_TEAM_EX_SPRINT belonging to com.atlassian.jpo at com.atlassian.rdbms.dbimportexport.runner.impl.ImportRunnerImpl.importAllTables(ImportRunnerImpl.java:251) at com.atlassian.rdbms.dbimportexport.runner.impl.ImportRunnerImpl.lambda$runImportFromDBIE$0(ImportRunnerImpl.java:150) at com.atlassian.rdbms.dbimportexport.runner.impl.JdbcUtils.executeWithAutoCommitMode(JdbcUtils.java:52) at com.atlassian.rdbms.dbimportexport.runner.impl.ImportRunnerImpl.runImportFromDBIE(ImportRunnerImpl.java:135) at com.atlassian.rdbms.dbimportexport.runner.impl.ImportRunnerImpl.runImportFromAOXML(ImportRunnerImpl.java:92) at com.atlassian.jira.bc.dataimport.PluginDataImportService.lambda$importDataFromStream$0(PluginDataImportService.java:46) at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:36) at com.atlassian.jira.bc.dataimport.PluginDataImportService.importDataFromStream(PluginDataImportService.java:45) at com.atlassian.jira.bc.dataimport.CloudImportService.restoreAo(CloudImportService.java:517) at com.atlassian.jira.bc.dataimport.CloudImportService.performDbImport(CloudImportService.java:214) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:306) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:358) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.lambda$null$1(CloudImportTaskRunner.java:167) at com.atlassian.connpool.impl.AbstractConnectionPoolProvider.withPrivatePool(AbstractConnectionPoolProvider.java:133) at com.atlassian.jira.connpool.JiraViburConnectionPoolProvider.withPrivatePool(JiraViburConnectionPoolProvider.java:94) at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$null$0(AbstractBackupTaskRunner.java:63) at java.util.Optional.map(Optional.java:215) at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$runWithSeparateContextAsync$1(AbstractBackupTaskRunner.java:62) at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: Error importing datafile at com.atlassian.rdbms.dbimportexport.dbie.impl.AbstractRawJDBCImporter.importTable(AbstractRawJDBCImporter.java:60) at com.atlassian.rdbms.dbimportexport.dbie.impl.ImporterImpl.importTable(ImporterImpl.java:60) at com.atlassian.rdbms.dbimportexport.runner.impl.ImportRunnerImpl.importAllTables(ImportRunnerImpl.java:238) ... 21 more Caused by: com.atlassian.rdbms.dbimportexport.dbie.api.datafile.DatafileParseException: Error importing line number 1 at com.atlassian.rdbms.dbimportexport.dbie.impl.DatafileUtils.readTableData(DatafileUtils.java:60) at com.atlassian.rdbms.dbimportexport.dbie.impl.AbstractRawJDBCImporter.importTable(AbstractRawJDBCImporter.java:57) ... 23 more Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "PLANTEAM_ID" violates not-null constraint Detail: Failing row contains (67, null, 994). at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169) at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136) at sun.reflect.GeneratedMethodAccessor559.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.vibur.dbcp.proxy.AbstractInvocationHandler.targetInvoke(AbstractInvocationHandler.java:145) at org.vibur.dbcp.proxy.StatementInvocationHandler.doProcessExecute(StatementInvocationHandler.java:204) at org.vibur.dbcp.proxy.StatementInvocationHandler.on(StatementInvocationHandler.java:195) at com.atlassian.jira.connpool.JiraViburConnectionPoolProvider.lambda$null$5(JiraViburConnectionPoolProvider.java:145) at org.vibur.dbcp.proxy.StatementInvocationHandler.processExecute(StatementInvocationHandler.java:137) at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:91) at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:41) at org.vibur.dbcp.proxy.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:81) at com.sun.proxy.$Proxy5010.executeUpdate(Unknown Source) at com.atlassian.rdbms.dbimportexport.dbie.impl.AbstractRawJDBCImporter$PreparedStatementColumnSetter.endRow(AbstractRawJDBCImporter.java:134) at com.atlassian.rdbms.dbimportexport.dbie.impl.DatafileReader.readRow(DatafileReader.java:188) at com.atlassian.rdbms.dbimportexport.dbie.impl.DatafileUtils.readTableData(DatafileUtils.java:54) ... 24 more
      

      Workaround

      Extract the activeobjects.xml file from the backup and update all references of 'PLAN_TEAM_ID' to 'PLANTEAM_ID'

            Assignee:
            Thomas
            Reporter:
            Houston B.
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: