Commit graph

290 commits

Author SHA1 Message Date
Amir Sarabadani
31513848ef Fix Postgres index drifts on recentchanges table
To make migrating recentchanges table to abstract schema easier

Bug: T230428
Bug: T164898
Change-Id: I727dfc6b644701bd99d49628dfeeaa0ca46f168c
2021-01-16 23:15:54 +01:00
Amir Sarabadani
dba59bc223 Migrate oldimage to abstract schema
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
2021-01-16 21:18:25 +01:00
Amir Sarabadani
c33876f834 Migrate text table to abstract schema
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
2021-01-09 16:07:54 +01:00
Amir Sarabadani
5cfdb13c0f Add missing PG indexes of ipblocks
To make the work of abstracting this table easier.

Bug: T230428
Bug: T164898
Change-Id: I259c99aec7b6df27269fe02172ae4905ecfd29c2
2021-01-09 15:01:51 +01:00
Amir Sarabadani
37fc2d1ba1 Migrate filearchive to abstract schema
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
2020-12-23 04:04:27 +01:00
Amir Sarabadani
5f374fa3f8 Migrate uploadstash to abstract schema
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
2020-12-13 19:12:36 +01:00
Ammar Abdulhamid
b9094b0248 Migrate logging to abstract schema
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
2020-12-11 21:40:28 +00:00
Ammar Abdulhamid
cb77a1121f Rename all PG logging indexes
with exception of logging_actor_time which does not exist
in MySQL and thus will be removed in migrating the table to
abstract schema

New names unify the indexes with MySQL/SQLite names

Bug: T164898
Change-Id: I90bec59b86cdd527d77cc6084056ab4267cc5b40
2020-12-07 08:00:47 +01:00
Amir Sarabadani
1476e3b5b5 Migrate categorylinks to abstract schema
To get MySQL/SQLite migrated, changing type of cl_to and
cl_sortkey_prefix from "varchar() binary" to varbinary

For Postgres:
 - Dropping foreign key on cl_from
 - Setting proper default for cl_from, cl_to, cl_sortkey, cl_collation
 - Set cl_sortkey to not nullable
 - Dropping unique index cl_from which in turn should become PK
 - Adding several missing indexes
 - Fixing columns of cl_sortkey

Bug: T230428
Bug: T164898
Change-Id: I83043ef41f9c753734f1e4b51237d979031dd71a
2020-12-03 07:43:02 +00:00
Ammar Abdulhamid
b7f35505d0 Fix some PG page table indexes drift with MySQL
There are many changes in migrating page to abstract schema,
so I split this out to simplify it a bit.

 - Rename index: page_len_idx -> page_len
 - Rename index: page_random_idx -> page_random
 - Rename index: page_unique_name -> name_title
 - Add index: page_redirect_namespace_len

Bug: T164898
Change-Id: I8193860129f1134f5dad7d633d069077ee597465
2020-11-23 07:21:21 +01:00
Amir Sarabadani
a2a0088d6b Migrate slot_roles and content_models to abstract schema
These tables don't have drift between MySQL and Postgres but their
primary keys don't have explicit "NOT NULL" statement making them
nullable in sqlite. Fixing this drift.

Also changing the PK fields of these two tables from smallint to int,
given that PG would be complicated with smallint auto_increment PKs

Bug: T230428
Bug: T258366
Change-Id: Icf6ce044eaf0f09b1a2bdd8a1f618cef1e0415bf
2020-11-22 00:24:08 +01:00
Ammar Abdulhamid
40ebc05ce4 Migrate job to abstract schema
Postgres:
 - Drop deafault from job_id
 - Add default to job_cmd
 - Change job_namespace datatype to INTEGER
 - Drop  job_cmd_namespace_title index
 - Add job_cmd index on the same fields as MySQL
 - Rename index job_timestamp_idx

MySQL:
 - Change job_title datatype to VARBINARY
 - Change job_timestamp datatype to BINARY (mwtimestamp)
 - Change job_token_timestamp datatype to BINARY (mwtimestamp)

Bug: T230428
Bug: T164898
Bug: T42626
Change-Id: I207aefc48c7bcbb5b5362af4b63d9a1383019a6d
2020-11-21 23:38:28 +01:00
Ammar Abdulhamid
b9717c8bf8 Migrate page_props to abstract schema
For Postges:
 - Drop foreign key from 'pp_page'
 - Move pk addition from the SQL file to the Updater class
 - Override default SQL value for float to return FLOAT which is in use.

For MySQL:
 - Override default SQL value for float to return FLOAT which is in use
 Hack added in generateSchemaSql.php

Bug: T230428
Bug: T164898
Change-Id: I3c591c9b8f43647b0208690bca79f2d0dd206922
2020-11-18 06:20:32 +01:00
Ammar Abdulhamid
16ebaa8ce4 Migrate revision_actor_temp to abstract schema
For Postgres:
 - Drop foreign key from 'revactor_page'
 - Change datatype of 'revactor_actor' to BigInt as in MySQL/SQLite
 - Make 'revactor_page' non-nullable as in MySQL/SQLite

For MySQL/SQLite:
 - Drop empty string default constraint from 'revactor_timestamp' as
 this is not allowed in the corresponding PG's TIMESTAMPTZ field

Bug: T230428
Bug: T164898
Change-Id: I8c5c4b338a3000b1e4c2ab82fdae4a9819925868
2020-11-10 12:27:40 +01:00
Ammar Abdulhamid
01cd9e25d7 Migrate revision_comment_temp to abstract schema
For Postgres:
 - Change 'revcomment_comment_id' to BigInt as it's in MySQL/SQLite

Bug: T230428
Bug: T164898
Change-Id: I4b5af210b63d932e2eb0120075a5fa5250924ace
2020-11-10 07:35:10 +01:00
Amir Sarabadani
b14f9ead33 Migrate ip_changes to abstract schema
In order to make Postgres work:
 - Dropped the autoincrement sequence, this is the PK without
   autoincrement
 - Change ipc_hex from BYTEA to TEXT
 - Set default for ipc_rev_id

MySQL/SQLite:
 -Drop default for ipc_rev_timestamp

Bug: T230428
Bug: T164898
Change-Id: I7f85d65f6ee3ac8b1d28e33095f37dce81e1727e
2020-11-05 22:38:50 +01:00
Ammar Abdulhamid
bafdce78b1 Migrate externallinks to abstract schema
Postgres changes:
 - Drop foreign key from `el_from`
 - Change 'el_index_60 type from BYTEA to TEXT
 - Set default for `el_from` to sync with MySQL
 - Also renamed these indexes to sync with MySQL
   - 'externallinks_from_to' -> 'el_from'
   - 'externallinks_index' -> 'el_index'
 - Add index 'el_to' on 'el_to' and 'el_from' columns. This completes
   the PG indexes to 5 to match up MySQL indexes

Bug: T230428
Bug: T164898
Change-Id: I1ab9bde19e456256db99d1244130e8ee11f9b6c8
2020-11-05 19:00:24 +01:00
Ammar Abdulhamid
7fbcee5748 Migrate protected_titles to abstract schema
For Postgres:
 - Drop foreign key from pt_title
 - Change pt_user to non-nullable to sync with MySQL
 - Change pt_expiry to non-nullable to sync with MySQL
 - Modify pt_reason_id to use BIGINT to sync with MySQL
 - Drop default from pt_create_perm field since MySQL and SQLite
don't have it and the field is not nullable.
 -

For MySQL/SQLite:
 - Modify pt_title to use varbinary
 - Drop DEFAULT constraint from pt_expiry (Postgres already does not have it)

Bug: T230428
Bug: T164898
Change-Id: Iff193754260046222ba9b7e704c46e27f21b1a6b
2020-11-02 15:05:23 +01:00
Amir Sarabadani
892d308989 Migrate interwiki table to abstract schema
For MySQL, turning bool to tinyint(1) but doesn't matter because bool is
an alias of tinyint(1)

For Postgres:
 - Changing type of iw_prefix and iw_wikiid to varchar(32)
   and varchar(64) respectively to make it in sync with Mysql.
 - Dropping add_interwiki function, it doesn't serve any purpose (search
   didn't bring anything)

Bug: T230428
Bug: T164898
Change-Id: Id652cb544ac1b216f2fad1a8a959739ead8a92cd
2020-11-02 06:01:00 +00:00
Ammar Abdulhamid
74c0553250 Migrate new_talk to abstract schema
For MySQL
 - Modify user_last_timestamp from VARBINARY to BINARY

For Postgres
 - Drop foreign key on user_id
 - Rename indexes to match MySQL convention

Bug:  T230428
Change-Id: Idc3ded012890d4ace805a646d75cd805b49b250c
2020-10-26 14:10:24 +01:00
jenkins-bot
ae9b8c3d29 Merge "Drop all "DROP SEQUENCE" in Postgres" 2020-10-23 20:23:38 +00:00
Amir Sarabadani
a9dcbe3585 Migrate sites table to abstract schema
For MySQL/Sqlite, using mwtinyint instead of bool, in reality it doesn't
matter since bool is an alias of tinyint(1) in MySQL.

In Postgres:
 - Changing type of site_domain from TEXT to VARCHAR to make it in sync
   with MySQL/Sqlite
 - Renaming all indexes from site_* to sites_* to be in sync with
   MySQL/Sqlite

Bug: T230428
Bug: T164898
Change-Id: Id73bb372807730446901d772fcdbd2f333b397ba
2020-10-22 19:35:39 +02:00
Ammar Abdulhamid
c8e8449caf Migrate watchlist table to Abstract schema
Postgres:
 - Set empty string as default for wl_title to match MySQL
 - Drop foreign key from wl_user
 - Change wl_namespace datatype from SMALLINT to INT to match MySQL/SQLite
 - Drop PG-specific indexes and sync them with MySQL

Bug: T230428
Bug: T164898
Change-Id: Ie996b81ca59069443976b90d7bcdce29997d768a
2020-10-22 15:12:00 +02:00
Ammar Abdulhamid
6599e5706c Migrate querycache_info to abstract schema
Additional changes for Postgres:
 - Set empty string as default for qci_type
 - Set PG-equivalent of the given MySql/Sqlite timestamp as
   default timestamp for qci_timestamp
 - Make qci_type non nullable
 - Make qci_timestamp non nullable
 - Drop UNIQUE constraint on qci_type

Bug: T230428
Bug: T164898
Depends-On: If344395615087c360597a5b3d66ea03e930b7d9b
Change-Id: I741d2d079696d4b4eba09945341054d2a145bddc
2020-10-20 08:18:03 +01:00
Amir Sarabadani
709df8f234 Drop all "DROP SEQUENCE" in Postgres
tables.sql never was meant as an idempotent script or something that can
be ran on an existing database or schema. This serves no purposes and
can cause issues if tables-generated.sql gets to run first (by dropping
sequences that just got created), currently this doesn't happen and
installer, first installs manual tables but it can change in the future.

Change-Id: I299a0ae1e49f415910892981c07cfd582d198598
2020-10-19 09:21:35 +02:00
Amir Sarabadani
4200969929 Migrate user_groups to abstract schema
For Postgres:
 - Dropping foreign key on ug_user
 - Setting default on ug_user and ug_group
 - Renaming indexes so they would be the same as MySQL/Sqlite

Bug: T42626
Bug: T164898
Bug: T230428
Change-Id: If507d8b8f363016760fe34aac2a0e0a2d99b66aa
2020-10-19 09:01:23 +02:00
Amir Sarabadani
ab8932638a Migrate page_restrictions to abstract schema
Sqlite doesn't need any change as binary/varbinary both turn into BLOB.

For Postgres:
 - Dropping foreign key on pr_page, as all FKs should be dropped (See
   T164898)
 - Add all of indexes, it seems PG was missing all four indexes of the
   MySQL version and didn't have any
 - Changing PK from (pr_page,pr_type) to (pr_id).
  - Had to add changePrimaryKey function to handle such cases, similar
    to checkIndex
 - Set pr_page to not nullable

Bug: T42626
Bug: T164898
Bug: T230428
Change-Id: Ied11f9c2ee633bf5ae325a6c2ea163dcc8d8d3c5
2020-10-19 09:00:26 +02:00
Amir Sarabadani
3d31e8d2d0 Migrate querycachetwo table to abstract schema
Yes, name of that table is really querycachetwo.

For migrating MySQL/Sqlite, changed data type of qcc_title and
qcc_titletwo to varbinary.

For migrating Postgres, just renaming indexes to stay in sync with
MySQL/Sqlite was enough.

Bug: T230428
Change-Id: I43952836ce184419622a6f851cb5e9319172d656
2020-09-26 16:39:53 +02:00
Amir Sarabadani
77f11539c2 Migrate querycache to abstract schema
Turning qc_title to varbinary in MySQL to make it consistent with the
rest of fields.

For Postgres:
 - Setting 0 as default for qc_value and qc_namespace
 - Changing data type of qc_namespace from SMALLINT to INT to make it
   the same with MySQL/Sqlite
 - Renaming index to make it the same with other schemas
 - Setting empty string as default of qc_title

Bug: T230428
Bug: T164898
Change-Id: I81527121609014d29182ae735a2c1f532d7d4d2a
2020-09-26 15:52:43 +02:00
Amir Sarabadani
3db2a91569
Migrate ipblocks_restrictions to abstract schema
Also dropping the fkey on ir_ipb_id in Postgres as approved by RFC T164898

Bug: T230428
Bug: T164898
Change-Id: Iaddec3b9992eee39fe82a45d5bda59bd51cde510
2020-09-22 16:01:45 -07:00
Amir Sarabadani
c0ee12dc86 Migrate change_tag_def table to abstract schema
Also fixing one schema data type drift between MySQL and Postgres
and fixing the problem with booleans, currently DBAL turns "boolean" to
TINYINT(1) in MySQL because it doesn't support it but it leave it like
that in Postgres which in turn breaks it because mediawiki currently
doesn't cast values properly, so for now just turning them to SMALLINT
which is the status quo (See T257755#6335566)

Bug: T230428
Bug: T164898
Change-Id: Ia495a451d51722496942b720a32393f7a6728dee
2020-09-17 10:21:47 +02:00
Amir Sarabadani
be4f90c7be Migrate watchlist_expiry to abstract schema
This takes advantage of custom data type registered in the previous
commit.

Also fixing Postgres drift by dropping the sequence, PK of this table is
not autoincrement so it shouldn't have sequence in Postgres.

Bug: T230428
Bug: T164898
Change-Id: I4c10990ead1e52c979254d2ac6a25ccf62a31508
2020-09-17 10:21:46 +02:00
Amir Sarabadani
b0c18769da Migrate category to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
cat_title data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres, renamed two indexes from category_* to cat_* to
make it in sync with MySQL/Sqlite

Bug: T164898
Bug: T230428
Change-Id: Iad11aa4f7d809465cb20ac9748bf52b0e1bcd5a4
2020-09-05 20:49:12 +02:00
Amir Sarabadani
cd7a28d30f Migrate iwlinks to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
iwl_title data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres:
 - Turning the unique index to PK to make it in sync with MySQL

Bug: T164898
Bug: T230428
Change-Id: Iaa625b66c874023b8cf2403917fa2fa120279208
2020-09-05 20:02:43 +02:00
Amir Sarabadani
1770341562 Migrate langlinks to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
ll_title data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres:
 - Dropping foreign key on ll_from
 - Setting default of empty string for ll_lang and ll_title
 - Make ll_lang and ll_title both non-nullable to be in sync with MySQL
 - Turning the unique index to primary key, similar to MySQL
 - Renaming an index to sync with MySQL

Bug: T164898
Bug: T230428
Change-Id: I57f22896ff67266f99bf08f6dd1b9cc4c51b1db9
2020-09-05 19:29:23 +02:00
Amir Sarabadani
61eaa48f3c Migrate imagelinks table to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
il_to data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres:
 - Dropping foreign key on il_from
 - Setting default of empty string for il_to
 - Completely rewriting indexes to make it synced with MySQL

Bug: T164898
Bug: T230428
Change-Id: I59f0d0a56d938a168bf1c7de2a1be47f15d1add1
2020-08-22 22:59:00 +02:00
Amir Sarabadani
aecc67b83d Migrate templatelinks table to abstract schema
In order to migrate MySQL and Sqlite to abstract schema changed the
tl_title data type from varchar binary to varbinary. This wouldn't
affect production.

For migrating Postgres:
 - Dropping foreign key on tl_from
 - Changing data type of tl_namespace from SMALLINT to INT and setting
   its default
 - Setting default of empty string for tl_title
 - Completely rewriting indexes to make it synced with MySQL

Bug: T164898
Bug: T230428
Change-Id: Idbb65d870f58f7146b9c8bd860e6530bef1e0f12
2020-08-22 15:23:03 +02:00
Amir Sarabadani
31dd3a9ebe Migrate pagelinks table to abstract schema
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
2020-08-19 13:58:00 +02:00
Amir Sarabadani
a531f4ad0b Migrate redirect table to abstract schema
Changing "varchar() binary" to varbinary in MySQL and Sqlite for two
columns: rd_title and rd_fragment.

Fixing db drifts of schema in Postgres:
 - Setting the data type of rd_namespace from SMALLINT and setting its
   default
 - Set empty string as default of rd_title
 - Changing datatype of rd_interwiki to varchar (PG supports that)

Bug: T164898
Bug: T230428
Change-Id: I9563792b1fc0ce5f3de78c08703a768a0c2e99d0
2020-08-13 00:37:45 +02:00
Amir Sarabadani
5e69ad1aad Migrate l10n_cache and module_deps to abstract schema
Also, fixing two data type drifts in Postgres:
 - lc_key was varchar (with no binary flag) in MySQL but TEXT in
   Postgres while PG supports varchar. Changing PG to varchar.
 - lc_value was BYTEA but the rest of varbinary fields are mapped to
   TEXT, changing it to TEXT data type.

And fixing primary key of these tables in Postgres too as it was a unique index instead.

Bug: T198811
Bug: T164898
Bug: T230428
Change-Id: I50305556bd870461d05f98c5272cf1d6a65deb15
2020-08-06 22:07:22 +02:00
Amir Sarabadani
e4bc792e6e Migrate content table to abstract schema
content.content_id was BIGINT in MySQL (and Sqlite) but INT in Postgres
so making Postgres BIGINT as well.

Bug: T230428
Bug: T164898
Change-Id: Ib8492e224478dc069ba17e489f7b2bb22d5da804
2020-08-03 00:46:01 +02:00
Amir Sarabadani
e464cc22ec Migrate change_tag to abstract schema
This is the first table that doesn't have any drift between MySQL and
Postgres.

Bug: T230428
Change-Id: I8be8906fc0f998c8aec79e148487219b3d43e57c
2020-08-03 00:46:01 +02:00
Amir Sarabadani
1799b9d09e Migrate log_search table to abstract schema
Also ls_value was varchar (with no binary flag) in MySQL but TEXT in
Postgres while PG supports varchar. Changing PG to varchar.

Bug: T230428
Bug: T164898
Change-Id: I2f7fae7b1e781021cb7d3ed39c40c2fc9d20a680
2020-08-03 00:46:01 +02:00
Amir Sarabadani
b345b8f6da Migrate user_properties to abstract schema
Also, dropping foreign key constraint on user_properties.up_user as it's decided to
drop all of foreign key constraints in T164898

And fixing primary key of the table in Postgres as it was a unique index
instead.

Bug: T198811
Bug: T164898
Bug: T230428
Change-Id: I60a2b65df62ec93a363309f8a17c29b83fd6f058
2020-07-31 17:49:50 +02:00
Amir Sarabadani
671b365394 Migrate site_stats table to abstract schema
Six fields were BIGINT in MySQL (and Sqlite) but INT in Postgres
so making Postgres BIGINT as well:
 - ss_total_edits
 - ss_good_articles
 - ss_total_pages
 - ss_users
 - ss_active_users
 - ss_images

Bug: T230428
Bug: T164898
Change-Id: I527b2797af3c8ba1a7402a4428b565f8e35cc132
2020-07-31 01:46:41 +02:00
Amir Sarabadani
aa3c07964c Migrate slots table to abstract schema
Three fields were BIGINT in MySQL (and Sqlite) but INT in Postgres
so making Postgres BIGINT as well:
 - slot_revision_id
 - slot_content_id
 - slot_origin

Bug: T230428
Bug: T164898
Change-Id: I5333cc0cbdc36356bd865ae118b883bc367c31eb
2020-07-21 18:05:41 +02:00
Amir Sarabadani
ac534bd119 Migrate comment table to abstract schema
comment.comment_id was BIGINT in MySQL (and Sqlite) but INT in Postgres
so making Postgres BIGINT as well.

Bug: T230428
Bug: T164898
Change-Id: I29a1878eea2adfd6e7d8ad85a94dc83718f9671e
2020-07-13 23:53:33 +02:00
Amir Sarabadani
b36210cae2 Migrate bot_passwords table to abstract schema
bot_passwords.bp_token didn't have a default in Postgres while it has
one in MySQL (and Sqlite), so adding the default to Postgres as well

Bug: T230428
Bug: T164898
Change-Id: I0ae4dbf8f2a5382081c6211c9cad51843000e3f1
2020-07-13 22:34:37 +02:00
Amir Sarabadani
5f03e0b5af Migrate actor and user_former_groups tables to abstract schema
Also during the abstraction, fixing the schema drift between MySQL
and Postgres in these two tables by removing foreign key, sequences,
and changing data types (as outlined in T164898)

Bug: T230428
Bug: T164898
Change-Id: If737a746629511b5a53d7ae70328fd558bd58d0e
2020-07-12 19:19:54 +02:00
Amir Sarabadani
3ad43ae06e Migrate site_identifiers to abstract schema
And converge the schema drift between mysql and postgres by setting all
to binary

Bug: T230428
Change-Id: I6f82b97c6e44c76ccdc0714aa8b32e959fbe896f
2020-06-14 18:37:30 +02:00