For MySQL/Sqlite:
- Nothing
For Postgres:
- Introduce the table. It's not used but it'll be used in the future (T220450)
Bug: T164898
Bug: T230428
Bug: T220450
Change-Id: I9f33132676344f8cd813f7a438b3a6a078fd281c
Postgres:
- Drop foreign key from rev_page
- Make rev_page not nullable
- Change rev_comment_id from int to bigint
- Change rev_actor from int to bigint
- Sync rev_page_id index with MySQL
MySQL/SQlite:
- Drop default from rev_timestamp
Additional changes in the generator script to handle more
formatting issues due to use of additional custom table options
Bug: T230428
Bug: T164898
Change-Id: Ia07dd52e43123473a1728523a3f863280537db8e
Also added token and flags fields. The token field can
be used as a tie-breaker for modtime and also for faster
cas() operations. The flags field makes serialization and
compression format changes easier in the future.
Bug: T274174
Change-Id: I45731a877b21835652993c2d285165a76eeae3e9
Postgres:
- Rename the table from `mwuser` to `user`
- Transition user_id from int to serial
- Make user_token not nullable and add default
- Make user_real_name not nullable and add default
- Make user_email not nullable
- Make user_newpassword not nullable
- Make user_password not nullable
- Drop UNIQUE contraint on user_name and add default
MySQL/SQLite:
* No changes
Bug: T164898
Bug: T230428
Change-Id: I746714f7b3ae16f9625f97bcca84280fcd8b61a0
Tested upgrade from 1.35 locally, and it broke due to two issues:
- text table didn't exist, making renaming the table the first update.
- the update was using user instead of mwuser. That was intentional on
the grounds that it'll be fixed soon, but it seems I746714f7b3a is
not going to make to the release.
Bug: T164898
Change-Id: I0c152f339954a001c5a5a0b94b8ad48e5b077290
Split off to make the migration patch smaller
Postgres:
- Make user_touched not nullable
MySQL/SQlite
- Change user_name from varchar to varbinary
- Change user_name from varchar to varbinary
- Drop empty string default from user_touched (Timestamp field)
Bug: T230428
Bug: T164898
Change-Id: I8fe0b1fb2af3149a2e2fdae7bb056ac6f863b09c
There's no reason to keep schema change that's no longer useful.
History is already tracked by git.
Change-Id: Ia8aa0d21ae5f2d799d9a641ebe7b924f56e07ab1
- Currently the updater just spams with
Changing column type of 'archive.ar_actor' from 'bigint' to 'BIGINT'
The strtolower reduces this spam.
- Remove dropping the old index and constraint that is already handled
in line above.
- Remove adding an index on image table that was added twice by mistake
and this one actually is on wrong fields which breaks.
Change-Id: Iae3f90f71519b4bdbdf8f26b623c817e5b45164b
These are from versions we don't support direct upgrade anymore and they
are already removed from update.php wiring.
Bug: T272199
Change-Id: I863d91d7d620943571cb8bb22f663c2efbbd0821
These changes to tsearch functions were introduced in 2010 in a version
that we definitely don't support direct upgrades from.
Bug: T272199
Change-Id: I47c4054552daad55c0e13eec36865706ee6d1903
Added new index: 'rev_page_timestamp' (the corresponding index
in MySQL is currently 'page_timestamp' but it will soon be
renamed to have the rev_ suffix as part of T270033).
Rename rev_timestamp_idx and revision_unique to match names
that are in use for MySQL
Bug: T230428
Bug: T164898
Change-Id: I3a79a892673b073cea57ee4e397b2963c7cef2f1
Postgres:
- Change page_namespace from smallint to int
- Change page_random from numeric with arbitrary precision to float
- Make page_touched not nullable
MySQL/SQLite:
- Change datatype of page_title from varchar (with binary collation)
to varbinary(255)
- Drop default empty string from timestamp field of page_touched
Bug: T230428
Bug: T164898
Change-Id: Ibdaf332ea1da309d31d35a6ebbc1b8fefced335e
This function was removed in abstracting interwiki table (Id652cb544)
and it's not needed anymore.
Change-Id: Ifc956ae91f8362e9872cd449fcab5cfb4870ec7f
This is to make the migrating this table to abstract schema easier.
And reduce schema drifts between postgres and mysql.
Bug: T230428
Bug: T164898
Change-Id: I97a8791283e2499a559f1debb9b3c66909069283
One of the last ones left.
For MySQL/Sqlite:
- Dropping default of ar_timestamp, empty string is not a valid
timestamp.
- Changing ar_title from "varchar() binary" to varbinary
for Postgres:
- Set default for ar_namespace and ar_title
- Change datatype of ar_comment_id, ar_actor, ar_namespace
The indexes were fixed separately.
Bug: T230428
Bug: T164898
Bug: T42626
Depends-On: I83cf1cd51ac9cf933c9175cefd6e38a6914f3494
Change-Id: Ic1d13a82b27f7fa39a0f0ea9c5b7b193b007e4ab
This should have no effect, but it helps in making this file
consistent with Mysql/Sqlite updaters.
Table was introduced in 1.27 (Iaa4015e) and was added in
'new tables' section, because then Postgres separated them
per patch type instead of per release.
Separating them per release (as MySql/Sqlit do) is more logical
and it's even more important now that we are not keeping them
indefinitely.
Bug: T272199
Change-Id: I1fa6d81c9903fb6188f00b791794b3199a0a5aa3
5 files for MySql/Sqlite/Postgres.
MysqlUpdater.php seems to have incorrect comment for 1.26 release
The hitcounter table was dropped in 1.25 (I0e5006a), so all the
files dropped here are part of schema change for 1.25.
Bug: T272199
Change-Id: I6a509a54d31f68e423b3d76d26259b1f88aa22bd
I checked all of them with https://github.com/wikimedia/mediawiki/blob/REL1_26/includes/installer/PostgresUpdater.php
using a script and all of them except one are old and have
not been added after 1.26. The only left is actually added but changed
in the mean time and is needed.
Also cleaning up checkIwlPrefix that was introduced in 1.17.
Bug: T272199
Change-Id: Ifc58c8d860ebc0e6d154203cafc6a64654bced92
To make abstracting this table easier. Reducing the schema drift between
schema of this table in PG and MySQL:
- Changing datatype of four fields
- Set default for seven fields
- Change nullability of two fields.
Bug: T230428
Bug: T164898
Change-Id: Id6fa9fd1ebf840f6354fcd8b8ebf0e393ba9e624
These are not clearly marked per release as they're in MysqlUpdater
until we reach 1.23 release, and I am not sure whether they're truly
in chronological order. Some of the files dropped here exists for Mysql
and here is there corresponding versions there, the rest do not exist
there.
* patch-page_restrictions.sql --1.10
* patch-protected_titles.sql --1.12
* patch-page_props.sql --1.13
* patch-category.sql --1.13
* patch-updatelog.sql --1.13
* patch-change_tag.sql --1.15
* patch-user_properties.sql --1.16
* patch-log_search.sql --1.16
* patch-l10n_cache.sql -- 1.16
* patch-iwlinks.sql -- 1.17
* patch-module_deps.sql -- 1.17
* patch-uploadstash.sql -1.18
* patch-user_former_groups.sql --1.18
* patch-sites.sql --1.21
These have no corresponding files
* patch-querycachetwo.sql
* patch-redirect.sql
Bug: T272199
Change-Id: I42830ffe8eb3ccad9b1f55d9f2629b388806335b
For MySQL/Sqlite:
- Change datatype of img_name from "varchar() binary" to varbinary.
- Drop default of img_timestamp
For Postgres:
- Adding two missing indexes.
- Renaming two indexes
- Setting default value for five fields
- Fix data type of four fields
- Drop default of img_metadata
- Make three fields not nullable
Bug: T230428
Bug: T164898
Change-Id: I237af3558b0e1c1fecd874c3c90ba6780e50aaa4
For Sqlite and MySQL, renaming name_title_timestamp to
ar_name_title_timestamp so it follows the database convention.
For Postgres:
- Rename archive_name_title_timestamp to ar_name_title_timestamp
- Drop archive_actor (that has only ar_actor)
- Add ar_actor_timestamp (that has ar_actor, ar_timestamp)
This fixes drifts of PG and MySQL and makes work for abstracting the
table easier.
Bug: T230428
Bug: T164898
Change-Id: I123a4c47602bdd415f0fe5823f96159dcd0d84b8
For MySQL/Sqlite:
- Drop default values of ipb_timestamp and ipb_expiry as part of
standardizing timestamp columns
For Postgres:
- Drop foreign key on two columns as approved by the RFC
- Set default of ipb_user
- Make three columns not nullable to sync with MySQL
- Change data type of two columns to BIGINT to be the same as MySQL
Bug: T230428
Bug: T164898
Bug: T42626
Change-Id: I2c5303d76c6ce059d7fef324a4521c6336c5b1f3