Skip to content

Commit

Permalink
Use Laravel standard for enable and disable foreign key checks (#190)
Browse files Browse the repository at this point in the history
* Use Laravel standard for eneable and disable foreign key checks

* Changed minimun laravel/database requirement
  • Loading branch information
carusogabriel authored and santigarcor committed Sep 4, 2017
1 parent 9096691 commit 1b5b50a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 13 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"illuminate/auth": "~5.2",
"illuminate/cache": "~5.2",
"illuminate/console": "~5.2",
"illuminate/database": "~5.2",
"illuminate/database": "^5.2.32",
"illuminate/support": "~5.2",
"kkszymanowski/traitor": "^0.2.0"
},
Expand Down
16 changes: 4 additions & 12 deletions src/views/generators/seeder.blade.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php echo '<?php' ?>

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

Expand Down Expand Up @@ -106,6 +107,7 @@ public function run()
*/
public function truncateLaratrustTables()
{
Schema::disableForeignKeyConstraints();
@if (Config::get('database.default') == 'pgsql')
DB::table('{{ config('laratrust.tables.permission_role') }}')->truncate();
DB::table('{{ config('laratrust.tables.permission_user') }}')->truncate();
Expand All @@ -116,24 +118,14 @@ public function truncateLaratrustTables()
DB::statement("TRUNCATE TABLE {$usersTable} CASCADE");
DB::statement("TRUNCATE TABLE {$rolesTable} CASCADE");
DB::statement("TRUNCATE TABLE {$permissionsTable} CASCADE");
@elseif(Config::get('database.default') == 'mysql')
DB::statement('SET FOREIGN_KEY_CHECKS = 0');
@else
DB::table('{{ config('laratrust.tables.permission_role') }}')->truncate();
DB::table('{{ config('laratrust.tables.permission_user') }}')->truncate();
DB::table('{{ config('laratrust.tables.role_user') }}')->truncate();
\{{ $user }}::truncate();
\{{ $role }}::truncate();
\{{ $permission }}::truncate();
DB::statement('SET FOREIGN_KEY_CHECKS = 1');
@elseif(Config::get('database.default') == 'sqlsrv')
DB::statement('EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"');
DB::table('{{ config('laratrust.tables.permission_role') }}')->truncate();
DB::table('{{ config('laratrust.tables.permission_user') }}')->truncate();
DB::table('{{ config('laratrust.tables.role_user') }}')->truncate();
\{{ $user }}::truncate();
\{{ $role }}::truncate();
\{{ $permission }}::truncate();
DB::statement('EXEC sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"');
@endif
Schema::enableForeignKeyConstraints();
}
}

0 comments on commit 1b5b50a

Please sign in to comment.