/** * Bootstrap the application services. * * @return void */ public function boot() { Project::created(function (Project $project) { PGSchema::create($project->schema_name); PGSchema::migrate($project->schema_name, ["--path" => "eddie/database/migations/schemamigrations"]); }); }
/** * Bootstrap the application services. * * @return void */ public function boot() { Project::deleting(function (Project $project) { PGSchema::switchTo(); PGSchema::drop($project->schema_name); }); }
/** * When a Project object is deleted, the associated database schema is deleted too. * */ public function testDeleteSchema() { $project = \eddie\Models\Project::where(['name' => $this->testSchemaName])->first(); $schemaName = $project->schema_name; $project->delete(); $this->notSeeInDatabase('projects', ['name' => $project->name]); $schemas = \Illuminate\Support\Facades\DB::select("SELECT schema_name FROM information_schema.schemata WHERE schema_name = '" . $schemaName . "';"); $this->assertEquals(0, count($schemas)); }