Skip to content

Instantly share code, notes, and snippets.

@sajjadintel
Forked from bgallagh3r/DatabaseSeeder.php
Created August 13, 2019 07:30
Show Gist options
  • Save sajjadintel/5e2263150a7e3e449b3a5eb5dc9400fb to your computer and use it in GitHub Desktop.
Save sajjadintel/5e2263150a7e3e449b3a5eb5dc9400fb to your computer and use it in GitHub Desktop.
Disable Foreign Key Constraints when Seeding DB with Artisan Migrate/DB Seed This prevents SQL from throwing errors when you try to do DB::table()->truncate() as TRUNCATE is disallowed when FK constraints are in place.
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Eloquent::unguard();
//disable foreign key check for this connection before running seeders
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
$this->call('UsersTableSeeder');
// supposed to only apply to a single connection and reset it's self
// but I like to explicitly undo what I've done for clarity
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment