SQLite DB problems while upgrading 4.6.2 => 5.2.0

So i’ve tried to upgrade from 4.6.2 => 5.2.0 on two separate instances. On both i’ve encountered same problems with sqlite database upgrade

  1. SQLite3::ConstraintException: UNIQUE constraint failed: vm_pool.oid

    SQLite3::ConstraintException: UNIQUE constraint failed: vm_pool.oid
    /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:108:in step' /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:108:inblock in each’
    /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:107:in loop' /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:107:ineach’
    /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:158:in to_a' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:158:inblock in execute’
    /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:95:in prepare' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:134:inexecute’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:181:in block (2 levels) in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:33:inlog_yield’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:181:in block in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:91:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:172:in _execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:143:inexecute_insert’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:810:in execute_insert' /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:338:ininsert’
    /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:106:in block (2 levels) in up' /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:144:inblock in each’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:371:in block (2 levels) in fetch_rows' /usr/lib/ruby/vendor_ruby/sqlite3/resultset.rb:138:ineach’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:362:in block in fetch_rows' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:266:inquery’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:179:in block (2 levels) in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:33:inlog_yield’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:179:in block in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:91:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:172:in _execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:122:inexecute’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:794:in execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:356:infetch_rows’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:144:in each' /usr/lib/ruby/vendor_ruby/sequel/database/dataset.rb:46:infetch’
    /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:101:in block in up' /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:118:in_transaction’
    /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:93:in block in transaction' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:104:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:86:in transaction' /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:99:inup’
    /usr/lib/one/ruby/onedb/onedb.rb:232:in apply_migrators' /usr/lib/one/ruby/onedb/onedb.rb:179:inupgrade’
    /usr/bin/onedb:313:in block (2 levels) in <main>' /usr/lib/one/ruby/cli/command_parser.rb:449:incall’
    /usr/lib/one/ruby/cli/command_parser.rb:449:in run' /usr/lib/one/ruby/cli/command_parser.rb:76:ininitialize’
    /usr/bin/onedb:222:in new' /usr/bin/onedb:222:in

  2. SQLite3::ConstraintException: UNIQUE constraint failed: history.vid, history.seq

    SQLite3::ConstraintException: UNIQUE constraint failed: history.vid, history.seq
    /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:108:in step' /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:108:inblock in each’
    /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:107:in loop' /usr/lib/ruby/vendor_ruby/sqlite3/statement.rb:107:ineach’
    /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:158:in to_a' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:158:inblock in execute’
    /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:95:in prepare' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:134:inexecute’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:181:in block (2 levels) in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:33:inlog_yield’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:181:in block in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:91:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:172:in _execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:143:inexecute_insert’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:810:in execute_insert' /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:338:ininsert’
    /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:145:in block (2 levels) in up' /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:144:inblock in each’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:371:in block (2 levels) in fetch_rows' /usr/lib/ruby/vendor_ruby/sqlite3/resultset.rb:138:ineach’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:362:in block in fetch_rows' /usr/lib/ruby/vendor_ruby/sqlite3/database.rb:266:inquery’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:179:in block (2 levels) in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:33:inlog_yield’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:179:in block in _execute' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:91:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:172:in _execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:122:inexecute’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:794:in execute' /usr/lib/ruby/vendor_ruby/sequel/adapters/sqlite.rb:356:infetch_rows’
    /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:144:in each' /usr/lib/ruby/vendor_ruby/sequel/database/dataset.rb:46:infetch’
    /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:137:in block in up' /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:118:in_transaction’
    /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:93:in block in transaction' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:inblock in synchronize’
    /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:104:in hold' /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:229:insynchronize’
    /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:86:in transaction' /usr/lib/one/ruby/onedb/local/4.11.80_to_4.13.80.rb:135:inup’
    /usr/lib/one/ruby/onedb/onedb.rb:232:in apply_migrators' /usr/lib/one/ruby/onedb/onedb.rb:179:inupgrade’
    /usr/bin/onedb:313:in block (2 levels) in <main>' /usr/lib/one/ruby/cli/command_parser.rb:449:incall’
    /usr/lib/one/ruby/cli/command_parser.rb:449:in run' /usr/lib/one/ruby/cli/command_parser.rb:76:ininitialize’
    /usr/bin/onedb:222:in new' /usr/bin/onedb:222:in

  3. Problem was fixed by removing records from vm_pool table where state was 6 (DONE state, so probably safe to remove) ‘DELETE FROM vm_pool where state=6;’

  4. Problem was fixed by removing records from history table (as I understand if i don’t care about history logs, i can safely delete this table) ‘DELETE FROM history;’