This removes most of the pre-actor user and user_text columns, and the $wgActorTableSchemaMigrationStage setting that used to determine whether the columns were used. rev_user and rev_user_text remain in the code, as on Wikimedia wikis the revision table is too large to alter at this time. A future change will combine that with the removal of rev_comment, rev_content_model, and rev_content_format (and the addition of rev_comment_id and rev_actor). ActorMigration's constructor continues to take a $stage parameter, and continues to have the logic for handling it, for the benefit of extensions that might need their own migration process. Code using ActorMigration for accessing the core fields should be updated to use the new actor fields directly. That will be done for in a followup. Bug: T188327 Change-Id: Id35544b879af1cd708f3efd303fce8d9a1b9eb02
44 lines
1.9 KiB
PL/PgSQL
44 lines
1.9 KiB
PL/PgSQL
--
|
|
-- patch-oldimage-drop-oi_user.sql
|
|
--
|
|
-- T188327. Drop old xx_user and xx_user_text fields, and defaults from xx_actor fields.
|
|
|
|
BEGIN;
|
|
|
|
DROP TABLE IF EXISTS /*_*/oldimage_tmp;
|
|
CREATE TABLE /*_*/oldimage_tmp (
|
|
oi_name varchar(255) binary NOT NULL default '',
|
|
oi_archive_name varchar(255) binary NOT NULL default '',
|
|
oi_size int unsigned NOT NULL default 0,
|
|
oi_width int NOT NULL default 0,
|
|
oi_height int NOT NULL default 0,
|
|
oi_bits int NOT NULL default 0,
|
|
oi_description_id bigint unsigned NOT NULL,
|
|
oi_actor bigint unsigned NOT NULL,
|
|
oi_timestamp binary(14) NOT NULL default '',
|
|
oi_metadata mediumblob NOT NULL,
|
|
oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE", "3D") default NULL,
|
|
oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart", "chemical") NOT NULL default "unknown",
|
|
oi_minor_mime varbinary(100) NOT NULL default "unknown",
|
|
oi_deleted tinyint unsigned NOT NULL default 0,
|
|
oi_sha1 varbinary(32) NOT NULL default ''
|
|
) /*$wgDBTableOptions*/;
|
|
|
|
INSERT OR IGNORE INTO /*_*/oldimage_tmp (
|
|
oi_name, oi_archive_name, oi_size, oi_width, oi_height, oi_bits,
|
|
oi_description_id, oi_actor, oi_timestamp, oi_metadata,
|
|
oi_media_type, oi_major_mime, oi_minor_mime, oi_deleted, oi_sha1
|
|
) SELECT
|
|
oi_name, oi_archive_name, oi_size, oi_width, oi_height, oi_bits,
|
|
oi_description_id, oi_actor, oi_timestamp, oi_metadata,
|
|
oi_media_type, oi_major_mime, oi_minor_mime, oi_deleted, oi_sha1
|
|
FROM /*_*/oldimage;
|
|
|
|
DROP TABLE /*_*/oldimage;
|
|
ALTER TABLE /*_*/oldimage_tmp RENAME TO /*_*/oldimage;
|
|
CREATE INDEX /*i*/oi_actor_timestamp ON /*_*/oldimage (oi_actor,oi_timestamp);
|
|
CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
|
|
CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
|
|
CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1(10));
|
|
|
|
COMMIT;
|