Browse Source

Merge 7c2cc4c43b into 061694d0cb

pull/7678/merge
Bryan 11 hours ago
committed by GitHub
parent
commit
c7baaf3208
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 21
      migrations/mysql/2026-09-02-120000_add_indexes/down.sql
  2. 24
      migrations/mysql/2026-09-02-120000_add_indexes/up.sql
  3. 18
      migrations/postgresql/2026-09-02-120000_add_indexes/down.sql
  4. 18
      migrations/postgresql/2026-09-02-120000_add_indexes/up.sql
  5. 18
      migrations/sqlite/2026-09-02-120000_add_indexes/down.sql
  6. 18
      migrations/sqlite/2026-09-02-120000_add_indexes/up.sql

21
migrations/mysql/2026-09-02-120000_add_indexes/down.sql

@ -0,0 +1,21 @@
-- On MariaDB these indexes back the foreign keys created from the inline REFERENCES,
-- and dropping them is refused with error 1553 while the constraints are enforced.
SET FOREIGN_KEY_CHECKS = 0;
DROP INDEX idx_ciphers_user_uuid ON ciphers;
DROP INDEX idx_ciphers_organization_uuid ON ciphers;
DROP INDEX idx_attachments_cipher_uuid ON attachments;
DROP INDEX idx_folders_user_uuid ON folders;
DROP INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers;
DROP INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections;
DROP INDEX idx_favorites_cipher_uuid ON favorites;
DROP INDEX idx_devices_user_uuid ON devices;
DROP INDEX idx_collections_org_uuid ON collections;
DROP INDEX idx_users_collections_collection_uuid ON users_collections;
DROP INDEX idx_users_organizations_org_uuid ON users_organizations;
DROP INDEX idx_groups_organizations_uuid ON `groups`;
DROP INDEX idx_groups_users_users_organizations_uuid ON groups_users;
DROP INDEX idx_collections_groups_groups_uuid ON collections_groups;
DROP INDEX idx_event_org_uuid_event_date ON event;
DROP INDEX idx_event_cipher_uuid_event_date ON event;
DROP INDEX idx_event_event_date ON event;

24
migrations/mysql/2026-09-02-120000_add_indexes/up.sql

@ -0,0 +1,24 @@
-- archives.cipher_uuid is left out: it is declared as an explicit FOREIGN KEY, so both
-- MySQL and MariaDB already maintain an index for it.
--
-- Every other table below uses inline REFERENCES. MySQL parses and ignores those, so no
-- index exists there. MariaDB honours them and backs each one with an auto-named index,
-- which InnoDB drops once the named index below can serve the constraint. Both engines
-- therefore end up with exactly one index per column.
CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid);
CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid);
CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid);
CREATE INDEX idx_folders_user_uuid ON folders (user_uuid);
CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid);
CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid);
CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid);
CREATE INDEX idx_devices_user_uuid ON devices (user_uuid);
CREATE INDEX idx_collections_org_uuid ON collections (org_uuid);
CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid);
CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid);
CREATE INDEX idx_groups_organizations_uuid ON `groups` (organizations_uuid);
CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid);
CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid);
CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date);
CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date);
CREATE INDEX idx_event_event_date ON event (event_date);

18
migrations/postgresql/2026-09-02-120000_add_indexes/down.sql

@ -0,0 +1,18 @@
DROP INDEX idx_ciphers_user_uuid;
DROP INDEX idx_ciphers_organization_uuid;
DROP INDEX idx_attachments_cipher_uuid;
DROP INDEX idx_folders_user_uuid;
DROP INDEX idx_folders_ciphers_folder_uuid;
DROP INDEX idx_ciphers_collections_collection_uuid;
DROP INDEX idx_favorites_cipher_uuid;
DROP INDEX idx_archives_cipher_uuid;
DROP INDEX idx_devices_user_uuid;
DROP INDEX idx_collections_org_uuid;
DROP INDEX idx_users_collections_collection_uuid;
DROP INDEX idx_users_organizations_org_uuid;
DROP INDEX idx_groups_organizations_uuid;
DROP INDEX idx_groups_users_users_organizations_uuid;
DROP INDEX idx_collections_groups_groups_uuid;
DROP INDEX idx_event_org_uuid_event_date;
DROP INDEX idx_event_cipher_uuid_event_date;
DROP INDEX idx_event_event_date;

18
migrations/postgresql/2026-09-02-120000_add_indexes/up.sql

@ -0,0 +1,18 @@
CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid);
CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid);
CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid);
CREATE INDEX idx_folders_user_uuid ON folders (user_uuid);
CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid);
CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid);
CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid);
CREATE INDEX idx_archives_cipher_uuid ON archives (cipher_uuid);
CREATE INDEX idx_devices_user_uuid ON devices (user_uuid);
CREATE INDEX idx_collections_org_uuid ON collections (org_uuid);
CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid);
CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid);
CREATE INDEX idx_groups_organizations_uuid ON groups (organizations_uuid);
CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid);
CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid);
CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date);
CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date);
CREATE INDEX idx_event_event_date ON event (event_date);

18
migrations/sqlite/2026-09-02-120000_add_indexes/down.sql

@ -0,0 +1,18 @@
DROP INDEX idx_ciphers_user_uuid;
DROP INDEX idx_ciphers_organization_uuid;
DROP INDEX idx_attachments_cipher_uuid;
DROP INDEX idx_folders_user_uuid;
DROP INDEX idx_folders_ciphers_folder_uuid;
DROP INDEX idx_ciphers_collections_collection_uuid;
DROP INDEX idx_favorites_cipher_uuid;
DROP INDEX idx_archives_cipher_uuid;
DROP INDEX idx_devices_user_uuid;
DROP INDEX idx_collections_org_uuid;
DROP INDEX idx_users_collections_collection_uuid;
DROP INDEX idx_users_organizations_org_uuid;
DROP INDEX idx_groups_organizations_uuid;
DROP INDEX idx_groups_users_users_organizations_uuid;
DROP INDEX idx_collections_groups_groups_uuid;
DROP INDEX idx_event_org_uuid_event_date;
DROP INDEX idx_event_cipher_uuid_event_date;
DROP INDEX idx_event_event_date;

18
migrations/sqlite/2026-09-02-120000_add_indexes/up.sql

@ -0,0 +1,18 @@
CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid);
CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid);
CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid);
CREATE INDEX idx_folders_user_uuid ON folders (user_uuid);
CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid);
CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid);
CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid);
CREATE INDEX idx_archives_cipher_uuid ON archives (cipher_uuid);
CREATE INDEX idx_devices_user_uuid ON devices (user_uuid);
CREATE INDEX idx_collections_org_uuid ON collections (org_uuid);
CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid);
CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid);
CREATE INDEX idx_groups_organizations_uuid ON groups (organizations_uuid);
CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid);
CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid);
CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date);
CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date);
CREATE INDEX idx_event_event_date ON event (event_date);
Loading…
Cancel
Save