Continuing from https://github.com/jeremyevans/sequel/issues/1048, sorry 
about that.

I have been running into issues in my migrations where DB2 will throw 
errors about needing to REORG after certain alter_table statements. One 
such sequence appears to be this:

      alter_table table do
        add_column new_col_name, :varchar, :null => true 
      end
      alter_table table do
        set_column_allow_null new_col_name, false
      end
      alter_table table do
        add_index new_col_name, :unique => true
      end
      alter_table table do
        drop_index [:a, :b, :c, :d]
      end

Right before the add_index seems to be where it errors out:

Sequel::DatabaseError: Java::ComIbmDb2JccAm::SqlException: Operation not 
allowed for reason code "7" on table "...".. SQLCODE=-668, SQLSTATE=57016, 
DRIVER=4.17.28

Same thing when I tried  to bump the JDBC jar:

Sequel::DatabaseError: Java::ComIbmDb2JccAm::SqlException: Operation not 
allowed for reason code "7" on table "...".. SQLCODE=-668, SQLSTATE=57016, 
DRIVER=4.19.26

So far I've been getting around it by manually running a reorg at whatever 
points in the migration process it errors out:

run "CALL SYSPROC.ADMIN_CMD( 'REORG TABLE table_name' )"

You mentioned on the bug that the JDBC driver should be handling this. I 
did find that there exists such an option:

UPDATE DB CONFIG USING AUTO_MAINT ON AUTO_TBL_MAINT ON AUTO_RUNSTATS ON 
AUTO_REORG ON

However it isn't on by default, I also feel like it would make sense to 
manually trigger it after a migration anyway.

I couldn't track down any documentation regarding the DB2 JDBC driver 
specifically handling REORG. Is there something else you were referring to?


Thanks,
Karl

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to