getDriverName(); return match ($driver) { 'sqlite' => 'sqlite', 'pgsql' => 'pgsql', default => 'mysql', }; } public function up(): void { $prefix = $this->prefix(); Schema::disableForeignKeyConstraints(); // Principals (users & groups) DB::unprepared(File::get($this->sql("{$prefix}.principals.sql"))); // CalDAV calendars + objects DB::unprepared(File::get($this->sql("{$prefix}.calendars.sql"))); // CardDAV address books + cards DB::unprepared(File::get($this->sql("{$prefix}.addressbooks.sql"))); Schema::enableForeignKeyConstraints(); } public function down(): void { $this->prefix(); Schema::disableForeignKeyConstraints(); // Drop in reverse dependency order DB::statement('DROP TABLE IF EXISTS cards_changes, addressbooks_changes, cards, addressbooks, schedulingobjects, calendarchanges, calendarobjects, calendarinstances, calendars, groupmembers '); Schema::enableForeignKeyConstraints(); } };