Skip to content

Commit

Permalink
Add database unseeds
Browse files Browse the repository at this point in the history
  • Loading branch information
akazorg committed Jan 21, 2018
1 parent c82bf62 commit ac95bac
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 1 deletion.
5 changes: 4 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,10 @@
"database/migrations"
],
"seeders": [
"database/seeds"
"database/seeds/DatabaseSeeder"
],
"unseeders": [
"database/unseeds/DatabaseUnseeder"
]
}
}
Expand Down
33 changes: 33 additions & 0 deletions database/unseeds/DataRowsTableUnseeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

use Illuminate\Database\Seeder;
use TCG\Voyager\Models\DataRow;

class DataRowsTableUnseeder extends Seeder
{
/**
* Will remove template attributes from JSON field.
*
* @return void
*/
public function run()
{
// fetch all rows where JSON not empty
$rows = DataRow::whereNot('details', '');

// find every record for existence of Template attributes
// and delete this key.
foreach ($rows as $row) {
$details = json_decode($row->details);

// delete key if found
if (isset($details->template)) {
unset($details['template']);

$row->details = json_encode($details);

$row->save();
}
}
}
}
19 changes: 19 additions & 0 deletions database/unseeds/DatabaseUnseeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

use Illuminate\Database\Seeder;

class DatabaseUnseeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->seed('VoyagerTemplatesTableUnseeder');
$this->seed('MenuItemsTableUnseeder');
$this->seed('PermissionsTableUnseeder');
$this->seed('DataRowsTableUnseeder');
}
}
24 changes: 24 additions & 0 deletions database/unseeds/MenuItemsTableUnseeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

use Illuminate\Database\Seeder;
use TCG\Voyager\Models\Menu;
use TCG\Voyager\Models\MenuItem;

class MenuItemsTableUnseeder extends Seeder
{
/**
* Remove menu data.
*
* @return void
*/
public function run()
{
$url = '/admin/templates';

$menu = Menu::where('name', 'admin')->firstOrFail();

MenuItem::where('menu_id', $menu->id)
->where('url', $url)
->delete();
}
}
17 changes: 17 additions & 0 deletions database/unseeds/PermissionsTableUnseeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Illuminate\Database\Seeder;
use TCG\Voyager\Models\Permission;

class PermissionsTableUnseeder extends Seeder
{
/**
* Remove permissions data file.
*
* @return void
*/
public function run()
{
Permission::removeFrom('voyager_templates');
}
}
18 changes: 18 additions & 0 deletions database/unseeds/VoyagerTemplatesTableUnseeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

use Illuminate\Database\Seeder;
use LauncherHost\VoyagerTemplates\Models\Template as VoyagerTemplate;
use TCG\Voyager\Models\DataType;

class VoyagerTemplatesTableUnseeder extends Seeder
{
/**
* Remove Voyager Templates data.
*
* @return void
*/
public function run()
{
DataType::where('slug', 'templates')->delete();
}
}

0 comments on commit ac95bac

Please sign in to comment.