In order to migrate MySQL and Sqlite to abstract schema changed the pl_title data type from varchar binary to varbinary. This wouldn't affect production. For migrating Postgres: - Dropping foreign key on pl_from - Changing data type of pl_namespace from SMALLINT to INT and setting its default - Setting default of empty string for pl_title - Completely rewriting indexes to make it synced with MySQL Bug: T164898 Bug: T230428 Change-Id: I4af8202742a1826e6b3f8ff36cf4f7b612b82690
19 lines
651 B
SQL
19 lines
651 B
SQL
CREATE TABLE /*_*/pagelinks_tmp (
|
|
pl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
|
|
pl_namespace INTEGER DEFAULT 0 NOT NULL,
|
|
pl_title BLOB DEFAULT '' NOT NULL,
|
|
pl_from_namespace INTEGER DEFAULT 0 NOT NULL,
|
|
PRIMARY KEY(pl_from, pl_namespace, pl_title)
|
|
);
|
|
|
|
INSERT INTO /*_*/pagelinks_tmp
|
|
SELECT pl_from, pl_namespace, pl_title, pl_from_namespace
|
|
FROM /*_*/pagelinks;
|
|
DROP TABLE /*_*/pagelinks;
|
|
ALTER TABLE /*_*/pagelinks_tmp RENAME TO /*_*/pagelinks;
|
|
|
|
CREATE INDEX pl_namespace ON /*_*/pagelinks (pl_namespace, pl_title, pl_from);
|
|
CREATE INDEX pl_backlinks_namespace ON /*_*/pagelinks (
|
|
pl_from_namespace, pl_namespace,
|
|
pl_title, pl_from
|
|
);
|