Make WordPress Core

Opened 16 years ago

Closed 13 years ago

#16568 closed defect (bug) (fixed)

Network install disables site when blog_id is not 1

Reported by: wpmuguru Owned by: nacin
Priority: normal Milestone: 3.7
Component: Multisite Version: 3.0.5
Severity: normal Keywords: has-patch commit
Cc: Focuses:

Description

This is an edge case and only occurs when MySQL is configured to skip numbers in auto number fields.

The network install inserts the blog record and allows MySQL to assign the blog_id. The blog prefix logic in wpdb depends on the blog_id of the main blog being 1.

The manual fix for this is to edit the DB and change the blog_id of the main blog to 1. Between being an edge case and a relatively easy fix, this isn't severe, imo.

Forum thread: ​http://wordpress.org/support/topic/database-error-when-enabling-mutlisite

Attachments (2)

16568.diff​ (774 bytes ) - added by wpmuguru 16 years ago.
hard code blog id 1
16568.2.diff​ (839 bytes ) - added by wpmuguru 14 years ago.
16568.diff refreshed for 3.5

Download all attachments as: .zip

Change History (7)

@wpmuguru
16 years ago

hard code blog id 1

#1 @wpmuguru
16 years ago

The alternative to hardcoding the blog id of 1 is to warn the user that they have to edit the DB. A more elaborate solution would be to add a constant with the blog id and use the constant in wpdb. That may create more trouble than the current issue is.

I'm proposing this because it is the simplest solution.

#2 @wpmuguru
16 years ago

  • Keywords has-patch added

@wpmuguru
14 years ago

16568.diff refreshed for 3.5

#3 @jeremyfelt
13 years ago

  • Keywords dev-feedback added
  • Milestone Future Release → 3.7

Moving to 3.7 for discussion. How common is it to change the autoincrement seed in MySQL?

#4 @nacin
13 years ago

  • Keywords commit added; dev-feedback removed

How common is it to change the autoincrement seed in MySQL?

Probably very uncommon. But 16568.2.diff​ looks good and seems proper. At the very least, the code is clear as to the expectation. This isn't that dissimilar to setting the post ID when we do an import, via import_id in wp_insert_post().

#5 @nacin
13 years ago

  • Owner set to nacin
  • Resolution → fixed
  • Status new → closed

In 25038:

In populate_network(), insert the first site as blog_id 1, overriding any auto-increment DB seed. props wpmuguru, fixes #16568.

Note: See TracTickets for help on using tickets.