zulip/zilencer/migrations
Alex Vandiver 50c3dd88e6 models: Migrate ids of all non-Message-related tables to bigint.
Migrate all `ids` of anything which does not have a foreign key from
the Message or UserMessage table (and would thus require walking
those) to be `bigint`.  This is done by removing explicit
`BigAutoField`s, trading them for explicit `AutoField`s on the tables
to not be migrated, while updating `DEFAULT_AUTO_FIELD` to the new
default.

In general, the tables adjusted in this commit are small tables -- at
least compared to Messages and UserMessages.

Many-to-many tables without their own model class are adjusted by a
custom Operation, since they do not automatically pick up migrations
when `DEFAULT_AUTO_FIELD` changes[^1].

Note that this does multiple scans over tables to update foreign
keys[^2].  Large installs may wish to hand-optimize this using the
output of `./manage.py sqlmigrate` to join multiple `ALTER TABLE`
statements into one, to speed up the migration.  This is unfortunately
not possible to do generically, as constraint names may differ between
installations.

This leaves the following primary keys as non-`bigint`:
- `auth_group.id`
- `auth_group_permissions.id`
- `auth_permission.id`
- `django_content_type.id`
- `django_migrations.id`
- `otp_static_staticdevice.id`
- `otp_static_statictoken.id`
- `otp_totp_totpdevice.id`
- `two_factor_phonedevice.id`
- `zerver_archivedmessage.id`
- `zerver_client.id`
- `zerver_message.id`
- `zerver_realm.id`
- `zerver_recipient.id`
- `zerver_userprofile.id`

[^1]: https://code.djangoproject.com/ticket/32674
[^2]: https://code.djangoproject.com/ticket/24203
2024-06-05 11:48:27 -07:00
..
0001_initial.py
0002_remote_zulip_server.py
0003_add_default_for_remotezulipserver_last_updated_field.py
0004_remove_deployment_model.py
0005_remotepushdevicetoken_fix_uniqueness.py
0006_customer.py
0007_remotezulipserver_fix_uniqueness.py
0008_customer_billing_user.py
0009_plan.py
0010_billingprocessor.py
0011_customer_has_billing_relationship.py
0012_coupon.py
0013_remove_customer_billing_user.py
0014_cleanup_pushdevicetoken.py
0015_delete_billing.py
0016_remote_counts.py
0017_installationcount_indexes.py
0018_remoterealmauditlog.py
0019_remotezulipserver_plan_type.py
0020_remotezulipserverauditlog.py
0021_alter_remotezulipserver_uuid.py
0022_remotezulipserver_create_audit_log_backfill.py
0023_remotezulipserver_deactivated.py
0024_remotepushdevicetoken_user_uuid.py
0025_alter_remotepushdevicetoken_user_id_drop_index.py
0026_auditlog_models_extra_data_json.py
0027_backfill_remote_realmauditlog_extradata_to_json_field.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
0028_rename_extradatajson_remoteauditlog_extra_data.py migration: Rename extra_data_json to extra_data in audit log models. 2023-08-16 17:18:14 -07:00
0029_update_remoterealm_indexes.py zilencer: Update remoterealm indexes. 2023-09-14 09:30:16 -07:00
0030_alter_remoteinstallationcount_remote_id.py zilencer: Remove index on RemoteInstallationCount.remote_id. 2023-10-20 10:07:06 -07:00
0031_alter_remoteinstallationcount_remote_id_and_more.py zilencer: Make BaseRemoteCount.remote_id field nullable. 2023-11-01 17:26:10 -07:00
0032_remotepushdevicetoken_backfill_ios_app_id.py push_notifs: Backfill ios_app_id on bouncer. 2023-11-07 16:19:42 -08:00
0033_remoterealm.py zilencer: Add new model RemoteRealm and send the data to the bouncer. 2023-11-08 15:54:22 -08:00
0034_remoterealmauditlog_remote_realm_and_more.py zilencer: Add mechanism to update RemoteRealm when Realm is changed. 2023-11-08 15:54:22 -08:00
0035_remoterealmcount_remote_realm_and_more.py counts: Add new mobile_pushes RemoteRealmCount stats. 2023-11-10 16:09:11 -08:00
0036_remotezulipserver_last_version.py zilencer: Store the last-reported server version when storing analytics. 2023-11-20 14:36:27 -08:00
0037_alter_remoteinstallationcount_unique_together_and_more.py zilencer: Remove duplicates before adding unique indexes. 2023-11-28 15:01:10 -08:00
0038_unique_server_remote_id.py zilencer: Enforce uniqueness of server_id + remote_id. 2023-11-28 09:46:48 -08:00
0039_remoterealm_org_type.py remote_realm: Add syncing of org_type. 2023-11-28 14:41:16 -08:00
0040_remoterealm_authentication_methods_remoterealm_name.py zilencer: Sync name and authentication_methods on RemoteRealm. 2023-11-29 15:54:38 -08:00
0041_remotezulipserver_org_type.py models: Add org_type to RemoteZulipServer. 2023-11-29 19:04:32 -08:00
0042_alter_remoterealmauditlog_realm_id.py models: Allow realm_id to be blank. 2023-11-30 11:22:19 -08:00
0043_remotepushdevicetoken_remote_realm.py zilencer: Tie RemotePushDeviceToken to RemoteRealm at registration. 2023-12-03 09:51:45 -08:00
0044_remoterealmbillinguser.py remote_billing: Add a "confirm login" page in RemoteRealm auth flow. 2023-12-05 11:34:57 -08:00
0045_remoterealmauditlog_zilencer_remoterealmauditlog_server_realm_and_more.py migrations: Add recently added indexes concurrently. 2023-12-05 18:22:23 -08:00
0046_remotezulipserver_last_audit_log_update.py stripe: Raise 'MissingDataError' while fetching license count. 2023-12-08 12:58:21 -08:00
0047_preregistrationremoteserverbillinguser_and_more.py remote_billing: Implement confirmation flow for legacy servers. 2023-12-08 23:49:10 -08:00
0048_remotezulipserver_last_api_feature_level.py remote_server: Send API feature level along with Zulip version. 2023-12-09 12:01:22 -08:00
0049_alter_remoterealmbillinguser_unique_together_and_more.py remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
0050_preregistrationremoterealmbillinguser_created_user_and_more.py remote_billing: Add some useful fields to Remote...User models. 2023-12-11 09:39:24 -08:00
0051_remoterealm_is_system_bot_realm.py models: Store `is_system_bot_realm` information for `RemoteRealm`. 2023-12-11 13:23:49 -08:00
0052_alter_remoterealm_plan_type_and_more.py billing: Standardize remote server plan type IDs. 2023-12-13 16:40:44 -08:00
0053_remoterealmauditlog_acting_remote_user_and_more.py remote_billing: Store acting users in remote user audit logs. 2023-12-14 08:11:04 -08:00
0054_remoterealmbillinguser_enable_maintenance_release_emails_and_more.py billing: Offer release announcement subscriptions. 2023-12-14 10:51:16 -08:00
0055_remoteserverbillinguser_tos_version.py billing: Offer release announcement subscriptions. 2023-12-14 10:51:16 -08:00
0056_remoterealm_realm_locally_deleted.py zilencer: Handle deleted realms nicely at server/analytics. 2023-12-15 09:18:26 -08:00
0057_remoterealm_last_request_timestamp_and_more.py zilencer: Add last_request_datetime to RemoteRealm + RemoteZulipServer. 2024-01-05 13:09:09 -08:00
0058_remoteinstallationcount_add_mobile_pushes_forwarded_index.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
0059_remoterealmauditlog_add_synced_billing_event_type_index.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
0060_remove_remoterealmcount_unique_remote_realm_installation_count_and_more.py zilencer: Add a unique index on RemoteRealm counts with RemoteRealm objects. 2024-05-06 16:34:01 -07:00
0061_clean_count_tables.py zilencer: Drop data which is no longer sent by remote servers. 2024-06-03 12:35:35 -07:00
0062_alter_remoteinstallationcount_id_and_more.py analytics: Migrate models' id columns to bigint. 2024-06-05 11:48:27 -07:00
0063_convert_ids_to_bigints.py models: Migrate ids of all non-Message-related tables to bigint. 2024-06-05 11:48:27 -07:00
__init__.py