DSpace 6.3 to 9.0 migration failure

52 views
Skip to first unread message

kre...@ics.muni.cz

unread,
Jul 15, 2025, 9:59:03 AMJul 15
to DSpace Technical Support
Hi all,
I've just tried to migrate my DSpace 6.3 to 9.0. First I ran 

./dspace database skip "5.7.2017.04.11"

which solved the known and reported issue (e.g. https://groups.google.com/g/dspace-tech/c/PlOA1WMvd4M/m/XTUEIIOLBgAJ) and let me go further.

However, I ended up with another issue. It looks weird and related to comparing integer and uuid. This is somehow reported in https://groups.google.com/g/dspace-tech/c/7jRrhZzYAUE/m/Q-vjBLN3AAAJ without a conclusion. However, this might be a different error.

Shortened version of what's wrong: 

-------------------------------------------------------------------------------
-- grant read/write/delete/add/remove permission on all Bitstreams of Bundle --
-- ORIGINAL to reviewers                                                     --
-------------------------------------------------------------------------------
...
INSERT INTO resourcepolicy
  (policy_id, resource_type_id, action_id, rptype, eperson_id, resource_id)
  SELECT
    nextval('resourcepolicy_seq') AS policy_id,
    '0' AS resource_type_id,
    '4' AS action_id,
    'TYPE_WORKFLOW' AS rptype,
    wfi.owner AS eperson_id,
    b2b.bitstream_id AS dspace_object
  FROM workflowitem AS wfi
  JOIN item2bundle AS i2b
  ON i2b.item_id = wfi.item_id
  JOIN bundle2bitstream AS b2b
  ON b2b.bundle_id = i2b.bundle_id
  JOIN metadatavalue AS mv
  ON mv.resource_id = i2b.bundle_id
  JOIN metadatafieldregistry as mfr
  ON mv.metadata_field_id = mfr.metadata_field_id
  JOIN metadataschemaregistry as msr
  ON mfr.metadata_schema_id = msr.metadata_schema_id
  WHERE
    msr.namespace = 'http://dublincore.org/documents/dcmi-terms/'
    AND mfr.element = 'title'
    AND mfr.qualifier IS NULL
    AND mv.text_value = 'ORIGINAL'
    AND wfi.owner IS NOT NULL
    AND (wfi.state = 2 OR wfi.state = 4 OR wfi.state = 6)
    AND NOT EXISTS(
        SELECT 1 FROM resourcepolicy WHERE resource_type_id = 0 AND action_id = 4 AND resourcepolicy.eperson_id = owner AND resourcepolicy.resource_id = b2b.bitstream_id
    );
]
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:112)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:116)
at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1556)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:408)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:444)
at org.dspace.storage.rdbms.DatabaseUtils.executeSql(DatabaseUtils.java:1250)
... 32 more
Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: integer = uuid
  Hint: No operator matches the given name and argument types. You might need to add explicit type casts.
  Position: 767
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:356)
at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:341)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:317)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:312)
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:183)
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:183)
at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:435)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:393)
... 34 more

kre...@ics.muni.cz

unread,
Jul 23, 2025, 9:30:44 AMJul 23
to DSpace Technical Support
I have solved this by editing comment out appropriate lines in dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/workflow/postgres/basicWorkflow/V5.7_2017.05.05__DS-3431.sql (all lines from 112 to the end) and dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/postgres/V5.7_2017.04.11__DS-3563_Index_metadatavalue_resource_type_id_column.sql (line 16 "CREATE INDEX...").

Then rebuild the DSpace (mvn package, ant update) and the migration is fine now and everything seems to work. 

Dne úterý 15. července 2025 v 15:59:03 UTC+2 uživatel kre...@ics.muni.cz napsal:
Reply all
Reply to author
Forward
0 new messages