createIfNotExists('job_assignments', function ($table) { // Job ID - eindeutige Zuordnung $table->string('job_id', 32)->primary(); // Worker der den Job verarbeitet $table->string('worker_id', 32); // Queue Name für Statistiken $table->string('queue_name', 255); // Assignment Timestamp $table->timestamp('assigned_at')->default('CURRENT_TIMESTAMP'); // Indexes $table->index('worker_id', 'idx_assignment_worker'); $table->index('queue_name', 'idx_assignment_queue'); $table->index(['worker_id', 'assigned_at'], 'idx_assignment_worker_time'); $table->index('assigned_at', 'idx_assignment_time'); }); $schema->execute(); } public function down(ConnectionInterface $connection): void { $schema = new Schema($connection); $schema->dropIfExists('job_assignments'); $schema->execute(); } public function getVersion(): MigrationVersion { return MigrationVersion::fromTimestamp("2024_12_19_145000"); } public function getDescription(): string { return 'Create job_assignments table for tracking job-to-worker assignments'; } public function getDomain(): string { return "Framework"; } }