In the current 7.x-2.x-dev release, the wysiwyg_update_last_removed() function is requiring a minimum 6.x schema version of 6202. That's not available from the current 6.x-2.4 production release, only from 6.x-2.x-dev. However, if I download the 7.x-2.2 production release, there is no such requirement, and I am able to update the schema to 7.x. I can then download 7.x-2.x-dev again and run updatedb again without problems. That seems wrong. If 6.x-2.4 => 7.x-2.2 => 7.x-2.x-dev can work, than 6.x-2.4 => 7.x-2.x-dev ought to work as well.

Comments

TwoD’s picture

To go to 7.x-2.x-dev you'll need to go via 6.x-2.x-dev.

Once 6.x-2.5 is out, can update to it before going to 7.x-2.3 (or 7.x-2.x-dev). Both 7.x-2.3 and 6.x-2.5 will be released at the same time so those wanting to stick to only official releases won't have a problem upgrading.

A while ago (see referenced issue) it turned out the 600x updates in the 7.x-2.x branch didn't actually work because of the database API changes between D6 and D7. This was overlooked in the initial port to D7 because upgrade tests were made with a fully up to date D6 installation, as recommended, so the 600x updates already run under D6 were skipped by D7. This is also what happens when you go 6.x-2.5 => 7.x-2.2.
Rather than trying to rewrite the upgrade paths it was decided to drop them and add the schema requirement, as an upgrade from 6.x-2.4 => 7.x-2.3 causes headaches from trying to figure out the current state of the schema.

(Note: Drupal 6/7 doesn't actually care how schema updates are numbered, it always runs them in numerical order. All our 7.x-2.x upgrades make sure the same change hasn't already been applied by a previous 6.x-2.x upgrade, and just adjust for D6/D7 differences like the format identifiers going from numbers to strings.)

brad.bulger’s picture

so there might not be any immediate errors doing an upgrade path of 6.x-2.4 => 7.x-2.2 => 7.x-2.x-dev , but it's skipping some schema updates?

TwoD’s picture

Correct.

6.x-2.4 => 7.x-2.2 works well because the last update in 6.x-2.4 is 6201 (introducing the wysiwyg_user table), and the only 6xxx one in 7.x-2.2 is 6000 (just cache clearing, but skipped because the schema version recorded in the system table is already higher than that), so it goes straight to 7000 (format id changes to string) and finally 7200 (again introducing the wysiwyg_user table, but since it already exists, only the format column's type is changed).

7.x-2.2 => 7.x-2.x-dev upgrade then runs all the new updates above 7200.

Just don't forget to actually run update.php between version changes and you'll be fine.

If you wait to upgrade from D6 to D7 until Wysiwyg 6.x-2.5 gets released, more 6xxx updates will be run, increasing the schema version number in the system table to 6203 (or whatever we're up to by then), same as if you continue to roll with 6.x-2.x-dev. Still, the instant you upgrade to D7 (and thus Wysiwyg 7.x-2.3), all the 7xxx updates have to be run. They don't have to actually do anything if certain conditions are met, but they will be run by Drupal.

Since our 7.x-2.x and 6.x-2.x branches are developed in parallel and backports go from 7.x-2.x => 6.x-2.x, many of the 62xx and 72xx updates do the same thing, but slightly different because of Drupal Core differences. To keep upgrades safe and not do stupid things - like having the 7000 update blindly trying to add the wysiwyg_user table, without checking if a 62xxx update (or a fresh 6.x-2.4 installation) already did it - we must have some logic for this in all updates. It's easy to forget that though, which is why I'm always trying to get as many people as possible to try patches which introduce upgrades...

TwoD’s picture

Category: Bug report » Support request
Status: Active » Fixed

I'm closing this as a support request.
If the version transitions aren't clear enough or you have other questions, feel free to reopen it.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.