← Back to team overview

mahara-contributors team mailing list archive

[Bug 1238363] Re: Can't upgrade to 1.8rc1 because block_instance has an index instead of a key

 

To replicate:

1. Install a copy of Mahara 1.1. (This can be obtained by checking out
the head of the 1.1_STABLE branch from gerrit or gitorious. There was no
admin password prompt in 1.1, instead the default username will be
"admin" and password will be "mahara")

2. Upgrade to 1.8rc1

Expected result: It should upgrade cleanly to 1.8rc1
Actual result: Upgrade dies with this error stack:

[DBG] e3 (lib/dml.php:167) postgres7 error: [-18: ERROR:  constraint "blocinst_viecolord_uk" of relation "block_instance" does not exist] in adodb_throw(ALTER TABLE block_instance DROP CONSTRAINT blocinst_viecolord_uk, )
[DBG] e3 (lib/dml.php:167) Command was: ALTER TABLE block_instance DROP CONSTRAINT blocinst_viecolord_uk
[WAR] e3 (lib/errors.php:752) Could not execute command: ALTER TABLE block_instance DROP CONSTRAINT blocinst_viecolord_uk
Call stack (most recent first):
  * log_message("Could not execute command: ALTER TABLE block_insta...", 8, true, true) at /home/aaronw/www/mahara/htdocs/lib/errors.php:109
  * log_warn("Could not execute command: ALTER TABLE block_insta...") at /home/aaronw/www/mahara/htdocs/lib/errors.php:752
  * SQLException->__construct("Could not execute command: ALTER TABLE block_insta...") at /home/aaronw/www/mahara/htdocs/lib/dml.php:169
  * execute_sql("ALTER TABLE block_instance DROP CONSTRAINT blocins...") at /home/aaronw/www/mahara/htdocs/lib/dml.php:1403
  * execute_sql_arr(array(size 1), true, true) at /home/aaronw/www/mahara/htdocs/lib/ddl.php:1135
  * drop_key(object(XMLDBTable), object(XMLDBKey)) at /home/aaronw/www/mahara/htdocs/lib/db/upgrade.php:3327
  * xmldb_core_upgrade("2009022627") at /home/aaronw/www/mahara/htdocs/lib/upgrade.php:311
  * upgrade_core(object(stdClass)) at /home/aaronw/www/mahara/htdocs/lib/mahara.php:265
  * upgrade_mahara(array(size 20)) at /home/aaronw/www/mahara/htdocs/admin/cli/upgrade.php:62

[WAR] e3 (lib/dml.php:169) Could not execute command: ALTER TABLE block_instance DROP CONSTRAINT blocinst_viecolord_uk
Call stack (most recent first):
  * execute_sql("ALTER TABLE block_instance DROP CONSTRAINT blocins...") at /home/aaronw/www/mahara/htdocs/lib/dml.php:1403
  * execute_sql_arr(array(size 1), true, true) at /home/aaronw/www/mahara/htdocs/lib/ddl.php:1135
  * drop_key(object(XMLDBTable), object(XMLDBKey)) at /home/aaronw/www/mahara/htdocs/lib/db/upgrade.php:3327
  * xmldb_core_upgrade("2009022627") at /home/aaronw/www/mahara/htdocs/lib/upgrade.php:311
  * upgrade_core(object(stdClass)) at /home/aaronw/www/mahara/htdocs/lib/mahara.php:265
  * upgrade_mahara(array(size 20)) at /home/aaronw/www/mahara/htdocs/admin/cli/upgrade.php:62

A nonrecoverable error occurred. This probably means you have
encountered a bug in the system

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1238363

Title:
  Can't upgrade to 1.8rc1 because block_instance has an index instead of
  a key

Status in Mahara ePortfolio:
  Confirmed

Bug description:
  See https://mahara.org/interaction/forum/topic.php?id=5770

  At least three sites have had fatal errors while attempting to upgrade
  to 1.8rc1, because their block_instance table does not have a key
  called blockinst_viecolord_uk. Instead, the table has a unique index
  called blockinst_viecolord_uix

  This particular key/index is a uniqueness key on the block_instance
  table, across the (view, column, order) columns. In the code, it's
  referred to as "viewcolumnorderuk". As part of the flexible layouts
  update, we replace it with a key on (view, row, column, order). To do
  that, we call drop_key() on the original. Unfortunately, the
  drop_key() method throws a fatal error if the key is not present.

  At least two of the three reporting sites have been around since
  before Mahara version 1.0. However, it's to be expected that many of
  the biggest and highest-profile Mahara sites will have been around for
  a long time, so we should provide them with a clean upgrade path where
  possible.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1238363/+subscriptions


References