Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

63 lines
1.6KB

  1. <?php
  2. namespace Framework\Database\Migration;
  3. use Framework\Database\Connection\Connection;
  4. use Framework\Database\Migration\Field\BoolField;
  5. use Framework\Database\Migration\Field\DateTimeField;
  6. use Framework\Database\Migration\Field\FloatField;
  7. use Framework\Database\Migration\Field\IdField;
  8. use Framework\Database\Migration\Field\IntField;
  9. use Framework\Database\Migration\Field\StringField;
  10. use Framework\Database\Migration\Field\TextField;
  11. abstract class Migration
  12. {
  13. protected array $fields = [];
  14. public function bool(string $name): BoolField
  15. {
  16. $field = $this->fields[] = new BoolField($name);
  17. return $field;
  18. }
  19. public function dateTime(string $name): DateTimeField
  20. {
  21. $field = $this->fields[] = new DateTimeField($name);
  22. return $field;
  23. }
  24. public function float(string $name): FloatField
  25. {
  26. $field = $this->fields[] = new FloatField($name);
  27. return $field;
  28. }
  29. public function id(string $name): IdField
  30. {
  31. $field = $this->fields[] = new IdField($name);
  32. return $field;
  33. }
  34. public function int(string $name): IntField
  35. {
  36. $field = $this->fields[] = new IntField($name);
  37. return $field;
  38. }
  39. public function string(string $name): StringField
  40. {
  41. $field = $this->fields[] = new StringField($name);
  42. return $field;
  43. }
  44. public function text(string $name): TextField
  45. {
  46. $field = $this->fields[] = new TextField($name);
  47. return $field;
  48. }
  49. abstract public function execute();
  50. abstract public function dropColumn(string $name): static;
  51. }

Powered by TurnKey Linux.