I finally decided to take the plunge, since everything I need is finally ready (or close enough).

I followed all the best practices for upgrading, and wound up with this error:

PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'expire' in 'field list': SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of /home/example.org/includes/lock.inc).

My search found all sorts of posts and issues with patches (from a year ago!) leading me to believe this should have been resolved. There are so many patches that I can't keep track of what could possibly be relevant.
Help? What do I need to do to be able to upgrade from 6.22 to 7.x?

(FYI, these {semaphore} error are the bane of my existence! Normally they simply throw errors during the update process (without actually interrupting it), so after failing to find a solution that would actually banish them, I finally just decided to ignore them. Apparently that was a bad plan.)

Comments

john_b’s picture

Can you upgrade core without this error? Can you upgrade contrib modules one by one?

Digit Professionals specialising in Drupal, WordPress & CiviCRM support for publishers in non-profit and related sectors

mhm’s picture

No, I cannot upgrade core without getting this error.
(Minor updates within 6.x (or contrib modules) throw the semaphore error, but that error doesn't actually prevent the updates from running.)

john_b’s picture

In the process of updating between versions of D6 the semaphore table should have been created. If you jumped a version or two maybe it was not. In your situation I would be looking at the database in phpMyadmin or similar to see whether the table and relevant column are there. If not, create a semaphore table, albeit empty, by hand. You can use phpMyadmin to import one. You can get a copy from a clean D7 install, or someone can send you a copy, I would send it but files cannot be attached here.

NB this is only what I would do, rather than advice. Edit database directly at own risk!

Digit Professionals specialising in Drupal, WordPress & CiviCRM support for publishers in non-profit and related sectors

mhm’s picture

Finally got back to this -- bless you! I had created an empty semaphore table previously, but that hadn't worked. Importing from a relatively fresh Drupal 7 install fixed it. (At first I wasn't convinced because the new table itself appears to be empty as well, but, hey, it works!)