summaryrefslogtreecommitdiff
path: root/db/migrations/2019_09_07_000001_create_schedule_shift_table.php
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrations/2019_09_07_000001_create_schedule_shift_table.php')
-rw-r--r--db/migrations/2019_09_07_000001_create_schedule_shift_table.php90
1 files changed, 90 insertions, 0 deletions
diff --git a/db/migrations/2019_09_07_000001_create_schedule_shift_table.php b/db/migrations/2019_09_07_000001_create_schedule_shift_table.php
new file mode 100644
index 00000000..c9cd7cfe
--- /dev/null
+++ b/db/migrations/2019_09_07_000001_create_schedule_shift_table.php
@@ -0,0 +1,90 @@
+<?php
+
+namespace Engelsystem\Migrations;
+
+use Engelsystem\Database\Migration\Migration;
+use Illuminate\Database\Schema\Blueprint;
+
+class CreateScheduleShiftTable extends Migration
+{
+ use Reference;
+
+ /**
+ * Run the migration
+ */
+ public function up()
+ {
+ $this->schema->create(
+ 'schedules',
+ function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('url');
+ }
+ );
+
+ $this->schema->create(
+ 'schedule_shift',
+ function (Blueprint $table) {
+ $table->integer('shift_id')->index()->unique();
+ if ($this->schema->hasTable('Shifts')) {
+ // Legacy table access
+ $table->foreign('shift_id')
+ ->references('SID')->on('Shifts')
+ ->onUpdate('cascade')
+ ->onDelete('cascade');
+ }
+
+ $this->references($table, 'schedules');
+ $table->uuid('guid');
+ }
+ );
+
+ if ($this->schema->hasTable('Shifts')) {
+ $this->schema->table(
+ 'Shifts',
+ function (Blueprint $table) {
+ $table->dropColumn('PSID');
+ }
+ );
+ }
+
+ if ($this->schema->hasTable('Room')) {
+ $this->schema->table(
+ 'Room',
+ function (Blueprint $table) {
+ $table->dropColumn('from_frab');
+ }
+ );
+ }
+ }
+
+ /**
+ * Reverse the migration
+ */
+ public function down()
+ {
+ if ($this->schema->hasTable('Room')) {
+ $this->schema->table(
+ 'Room',
+ function (Blueprint $table) {
+ $table->boolean('from_frab')
+ ->default(false);
+ }
+ );
+ }
+
+ if ($this->schema->hasTable('Shifts')) {
+ $this->schema->table(
+ 'Shifts',
+ function (Blueprint $table) {
+ $table->integer('PSID')
+ ->nullable()->default(null)
+ ->unique();
+ }
+ );
+ }
+
+ $this->schema->drop('schedule_shift');
+ $this->schema->drop('schedules');
+ }
+}