Exhibit Builder missing column when trying to upgrade

I’m doing an upgrade from Omeka 2.0.4 to 2.6. the upgrade to the database appears to have gone normally on first login. Exhibit Builder is giving me trouble though.

In the admin interface when I click the Exhibit Builder upgrade button it fails. It’s trying to upgrade from EB 2.0.4 to EB 3.4.1. It bombs telling me
"exception ‘Zend_Db_Statement_Mysqli_Exception’ with message ‘Mysqli prepare error: Unknown column ‘layout’ in ‘field list’’ in /var/www/html/omeka/application/libraries/Zend/Db/Statement/Mysqli.php:77"

I’ve tried doing an upgrade to 3.1 to try to pick up any table changes that might have been missed in going from 2.x to 3.x, but that errored out the same way.

What to try next?


Bobb Menk
MIT Lincoln Laboratory

Full stack trace is below if that’s of use.

Stack trace:
#0 /var/www/html/omeka/application/libraries/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare(‘SELECT id, layo…’)
#1 /var/www/html/omeka/application/libraries/Zend/Db/Adapter/Mysqli.php(388): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), ‘SELECT id, layo…’)
#2 /var/www/html/omeka/application/libraries/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Adapter_Mysqli->prepare(‘SELECT id, layo…’)
#3 [internal function]: Zend_Db_Adapter_Abstract->query(‘SELECT id, layo…’)
#4 /var/www/html/omeka/application/libraries/Omeka/Db.php(79): call_user_func_array(Array, Array)
#5 /var/www/html/omeka/plugins/ExhibitBuilder/functions.php(257): Omeka_Db->__call(‘query’, Array)
#6 /var/www/html/omeka/plugins/ExhibitBuilder/functions.php(257): Omeka_Db->query(‘SELECT id, layo…’)
#7 [internal function]: exhibit_builder_upgrade(Array)
#8 /var/www/html/omeka/application/libraries/Omeka/Plugin/Broker.php(142): call_user_func(‘exhibit_builder…’, Array)
#9 /var/www/html/omeka/application/libraries/Omeka/Plugin/Installer.php(96): Omeka_Plugin_Broker->callHook(‘upgrade’, Array, Object(Plugin))
#10 /var/www/html/omeka/application/controllers/PluginsController.php(231): Omeka_Plugin_Installer->upgrade(Object(Plugin))
#11 /var/www/html/omeka/application/libraries/Zend/Controller/Action.php(516): PluginsController->upgradeAction()
#12 /var/www/html/omeka/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch(‘upgradeAction’)
#13 /var/www/html/omeka/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#14 /var/www/html/omeka/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#15 /var/www/html/omeka/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#16 /var/www/html/omeka/application/libraries/Omeka/Application.php(73): Zend_Application->run()
#17 /var/www/html/omeka/admin/index.php(28): Omeka_Application->run()
#18 {main}

Are you sure your old Exhibit Builder version was 2.0.4? There wasn’t an Exhibit Builder with that version, and 2.0.3 should have had the layout column that’s being complained about here.

If you’re up for looking at such things, the contents of the plugins table and the structure (but not content) of the exhibit_pages table could be useful information.

This snap is of the source I’m trying to get upgraded. (The original is still in place, I’m upgrading on dev)


I see a Layout column in the Exhibit_pages table.


Here’s the exhibit_pages table structure

Did you perhaps have an error the first time you tried this, then you got the “encountered an error” screen, and retried with errors on? Or something like that?

It seems likely to me that the error you’re currently seeing about layout is actually a bit of a red herring: the upgrade got further along than that the first time, but as you re-run it against the partially-upgraded tables, it’s failing at this earlier stage now.

If you have a dump of the database post-Omeka upgrade but pre-EB upgrade that would be ideal, otherwise you may need to start the upgrade from the beginning again to get the “real” error.

I didn’t get any errors during the initial upgrade. I built a fresh copy of the production instance onto a dev host, then upgraded that.

I’d rather not blow the upgraded one away unless that becomes the only option.


But yes, (rereading your question), I did get the error on doing the plugin upgrade and then set it to a dev env in .htaccess and ran it a gain to see the full error.

That was specifically just for the EB plugin.

You do have one better option, now that I think of it: you can drop just the Exhibit Builder tables from your new database, and then reimport the old ones from your dump (again, just the Exhibit Builder ones), and then you’ll be able to run the upgrade again as if it was the first time.

You probably want to use the latest version of Exhibit Builder when trying the upgrade.

I’ll give that shot - thanks!

This topic was automatically closed after 250 days. New replies are no longer allowed.