Migration issue on opnact when using dbt.jar
While I was migrating a Connections 7 on premises customer to our cloud using the dbt.jar tool, I came across the issue that the OPNACT database did not want to migrate, it threw an error on the OA_NODE table stating that the source table has 38 columns and the target one 37
The column that did not exist on the target was OWNERMEMBERUUID
[10/20/22 03:18:58.929 CDT] Transferring table –{ ACTIVITIES.OA_NODE}– to table –{ACTIVITIES.OA_NODE }– [10/20/22 03:18:58.945 CDT] ERROR: Error validating data. The number of values is not equal to the number of columns in the destination table OA_NODE [10/20/22 03:18:58.965 CDT] ERROR: The number of values is 38 while the number of columns is 37 [10/20/22 03:18:58.973 CDT] error.executing.transfer com.ibm.wps.config.DatabaseTransferException: Column number mismatch at com.ibm.wps.config.db.util.RowHelper.updatePreparedStatement(RowHelper.java:271) at com.ibm.wps.config.db.transfer.DefaultTableHandler.execute(DefaultTableHandler.java:106) at com.ibm.wps.config.db.transfer.TransferEngine.execute(TransferEngine.java:70) at com.ibm.wps.config.db.transfer.CmdLineTransfer.execute(CmdLineTransfer.java:96) at com.ibm.wps.config.db.transfer.CmdLineTransfer.main(CmdLineTransfer.java:43)
Now the target database is a fresh cnx7 created database from the cnx7 scripts and the creation script does not contain this column. So I started looking through the database scripts to check what happened to that column over time.
I did find a create statement in the upgrade-301-40.sql script so it clearly was needed at some point.
Then I came across the upgrade-50CR1-55.sql script, that one has a statement to delete that specific column, but on the OA_AUTOSAVE_NODE table
Funny enough, I can find no reference of that table ever having that column, so I guess it’s a typo in the upgrade-50CR1-55.sql script and that script was supposed to delete the column in the OA_NODE table.
I have verified multiple environments, migrated and fresh ones and can find no reference on newer environments, but do find the column on older migrated systems
Solution, delete the column in the source database, all values are NULL anyways so it is clearly not in use