Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,17 @@ public function up(): void
// Adjust PK and unique index for partition key.
// Laravel Schema builder does not support PARTITION BY.
DB::statement('ALTER TABLE sendportal_messages
DROP INDEX sendportal_messages_hash_unique,
ADD UNIQUE INDEX sendportal_messages_hash_unique (hash, source_id),
DROP PRIMARY KEY,
ADD PRIMARY KEY (id, source_id)');

DB::statement('ALTER TABLE sendportal_message_failures DROP FOREIGN KEY sendportal_message_failures_message_id_foreign');

DB::statement('ALTER TABLE sendportal_messages
PARTITION BY HASH(source_id) PARTITIONS 50');

DB::statement('ALTER TABLE sendportal_messages
ADD UNIQUE INDEX sendportal_messages_hash_unique (hash, source_id)');

DB::statement('SET FOREIGN_KEY_CHECKS = 1');
}

Expand Down Expand Up @@ -92,6 +95,9 @@ public function down(): void
$table->timestamps();
});

// Restore the FK constraint dropped in up() to enable partitioning.
DB::statement('ALTER TABLE sendportal_message_failures ADD CONSTRAINT sendportal_message_failures_message_id_foreign FOREIGN KEY (message_id) REFERENCES sendportal_messages (id)');

DB::statement('SET FOREIGN_KEY_CHECKS = 1');
}
}