The policy allows this and since 1.39 is going to be the next LTS
release, I think it is fine to do this now.
Change-Id: If426e0ee349252ccc0ba9c4222c7d6865ab57fa2
Part of normalizing it, note that the field must be nullable now and
that will change later.
Bug: T299418
Change-Id: Id543dfa20a153312f66d2f45a64ac23e7272dabe
This includes:
page_props.pp_page
page_restrictions.pr_page
ipblocks_restrictions.ir_value
These columns must hold all possible values from page.page_id,
which is an unsigned integer.
These patches doesn't apply to Postgres.
Bug: T297212
Change-Id: I789f19f4d52daeab08f3090771404d078f86d0b3
Since the branch cut has happened, we can bump and get rid of legacy
cruft. According to the policy we can go up to 1.31 but let's keep it
that way to avoid major distruptions.
Change-Id: I9d697445a3bb5047726c8b2a7f808edb8403cdda
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
Mistake during the abstraction (Ibdaf332ea1d)
It doesn't need schema change since 1.36 is not released yet.
Bug: T230428
Change-Id: I071c39dfadf185b01e9109085907d6e3deb1f02f
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
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
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
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 was added in 1.14 and upgrading directly from there is no
longer supported (I95d80e3)
Bug: T272199
Change-Id: I3008d697907c7dd0e33afd69f9bd4765835e8654
This table is massive but thankfully we fixed most of its complexities
in previous patches.
For MySQL/Sqlite:
- Change type of rc_title and rc_source from "varchar binary" to
"varbinary"
- Drop default of rc_timestamp
- Change rc_timestamp from varbinary(14) to binary(14) to standardize
timestamp datatypes
One index doesn't follow the uniform prefix rule but since it's in a
maintenance script, will fix that in a follow up.
Bug: T230428
Bug: T42626
Change-Id: I13994e02ad3a2293148346ef7be96746578ad854
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
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
For Postgres:
- Drop Unique constraint on `keyname` and make primary key
- Change type of `value` from BYTEA to TEXT and drop its default
- Make `value` nullable to sync with MySQL/SQLite
MySQL:
- Change exptime from DATETIME to TIMESTAMP
MySQL/SQLite:
- Make 'exptime' not nullable
Bug: T230428
Bug: T164898
Change-Id: Iab9de8a1bb2cb01b6e3e69e66f1bbe089d53d0a7
For MySQL/Sqlite:
- Changing oi_name and oi_archive_name to varbinary instead of "varchar
binary"
- Dropping default from oi_timestamp
For Postgres:
- Adding the correct default to seven fields
- Removing incorrect default from oi_metadata
- Add missing index oi_actor_timestamp
- Change four fields to have correct data type
- Make oi_major_mime and oi_minor_mime not nullable
- Drop foreign key on oi_name
Bug: T230428
Bug: T164898
Change-Id: I4dff0e48081a5797a29513f9c8b87f9ffcaadb5d
For MySQL/Sqlite, drop the table options, they are for MySQL < 5.0 which
was released in 2003 and not any use today.
For Postgres, rename pagecontent table to text, approved as part of the
RFC. Swap order of creating auto-generated tables and manual tables.
Bug: T230428
Bug: T164898
Change-Id: Id7510b80beed7a7297353094a57d5e2d4f12fc64
Fixing this is going to be complicated. We have to first turn this into
varbinary(20), write a maintenance script to fix the values, then make sure
mediawiki work properly with two value types at the same time and then
turning it to binary(14).
For now, let's unblock 1.36 release, we will follow up on fixing this
for good later.
Bug: T270032
Change-Id: Iabbe8f085812acd90536a06fee2ecd4db9b047d5
For MySQL:
- Drop default from fa_deleted_timestamp and fa_timestamp
- Change fa_name and fa_storage_group from varchar() binary to
varbinary()
For Postgres:
- Set default for three fields
- Drop foreign key on fa_deleted_user
- Change field type for five fields
- Rename indexes to make it make in sync with MySQL/Postgres
- Rebuild an index to make it in sync MySQL/Postgres
Bug: T230428
Bug: T164898
Bug: T42626
Change-Id: Ia2be151c46c73f15592db03540834a6456460cac
To follow database coding convention and avoid clashes in RDBMS engines
where indexes are global
Bug: T270033
Change-Id: I17028bba489d04b01d22c39dc8935a4f0f771c7e
For MySQL:
- Migrating us_timestamp from varbinary(14) to binary(14) to
standardize timestamp fields
For postgres:
- Fixing datatype of 8 fields of the table
- Set "NOT NULL" for 7 fields
- Rename indexes to drop _idx suffix
Bug: T230428
Bug: T164898
Bug: T42626
Change-Id: I5391416ae463856cf5e9b05f542dec9b389b2f7c
Some changes needed for the migration:
Postgres:
- Add default to five fields that have it in MySQL
- Make log_params not nullable
- Change log_comment_id and log_actor type to big integer
- Change log_namespace to integer
- Drop logging_actor_time index
MySQL/SQLite
- Change log_title to varbinary/BLOB
Bug: T230428
Bug: T164898
Change-Id: Iad59d2a78f61d93637917ca320d3e173863ce5e1