You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.4KB

  1. <?php
  2. declare(strict_types=1);
  3. use Core\Database;
  4. use Core\Migration;
  5. return new class extends Migration
  6. {
  7. public function up(Database $database): void
  8. {
  9. $tableExists = $database->first(
  10. "SELECT 1 AS tbl FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'job'"
  11. );
  12. if ($tableExists) {
  13. return;
  14. }
  15. $database->execute(
  16. 'CREATE TABLE job (
  17. id INT IDENTITY(1,1) NOT NULL,
  18. campaign_id INT NOT NULL,
  19. job_type_id INT NOT NULL,
  20. attribute_values NVARCHAR(MAX) NULL,
  21. created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  22. updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  23. CONSTRAINT PK_job PRIMARY KEY (id),
  24. CONSTRAINT FK_job_campaign FOREIGN KEY (campaign_id)
  25. REFERENCES campaign (id) ON UPDATE NO ACTION ON DELETE NO ACTION,
  26. CONSTRAINT FK_job_job_type FOREIGN KEY (job_type_id)
  27. REFERENCES job_type (id) ON UPDATE NO ACTION ON DELETE NO ACTION
  28. )'
  29. );
  30. $database->execute('CREATE INDEX IX_job_campaign_id ON job (campaign_id)');
  31. }
  32. public function down(Database $database): void
  33. {
  34. $database->execute('DROP TABLE IF EXISTS job');
  35. }
  36. };

Powered by TurnKey Linux.