Laravel seeding error - wrong table name

laravel-4, mysql, php, seeding

Solution

Try explicitly defining table name in your Model. It might work. But it is of course not a complete solution, just a hack to make it work :D

protected $table = "institution_school";

Problem

Laravel is throwing this error when I try to seed the database. My table is institution_school and not institution_schools, what Laravel reports in the error. ``` [Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'eesdatabase.inst itution_schools' doesn't exist (SQL: insert into `institution_schools` (`sc hool_id`, `instituion_id`, `energy_id`, `year`, `updated_at`, `created_at`) values (38, 1, 1, 2005, 2014-07-04 19:38:41, 2014-07-04 19:38:41)) ``` I try to drop database and again migrate and seed. I try to reset Laravel cache with "php artisan:cache clear" Does anyone know how to fix this? Thanks ``` <?php class InstitutionSchool extends Eloquent { protected $table = "institution_school"; protected $guarded = array('id'); public function school() { return $this -> belongsTo('School'); } public function institutio() { return $this -> belongsTo('Institution'); } public function energy() { return $this -> belongsTo('Energy'); } } ?> <?php class InstitutionSchoolTableSeeder extends DatabaseSeeder { public function run() { DB::table('institution_school') -> delete(); $faker = $this -> getFaker(); $schools = School::all(); $institutions = Institution::all(); $energies = Energy::all(); foreach ($schools as $school) { for ($i = 0; $i < rand(1, 5); $i++) { $year = $faker -> randomNumber(2000, 2015); InstitutionSchool::create(array( 'school_id' => $school -> id, 'instituion_id' => 1, 'energy_id' => 1, 'year' => $year)); } } } } ?> <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateInstitutionSchoolTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('institution_school', function(Blueprint $table) { $table->increments('id'); $table->integer('institution_id')->unsigned(); $table->integer('school_id')->unsigned(); $table->string('year'); $table->string('other_source_name')->nullable(); $table->integer('energy_id')->unsigned()->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('institution_school', function(Blueprint $table) { Schema::drop('institution_school'); }); } } ```

Original source