laravel 5.1播种时未定义的表

I have model Campaigns

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\CampaignsTargetGeo;
use App\CampaignsTargetCategory;

class Campaigns extends Model
{

const DEFAULT_MARGINALITY = 1.2;

protected $table = 'campaigns';
public $fillable = [
    'name',
    'url',
    'user_rate_min',
    'user_rate_max',
    'network_rate_min',
    'network_rate_max',
    'daily_limit',
    'hourly_limit',
    'status_id',
    'user_id'
];

and seed CampaignsSeeder

<?php

use Illuminate\Database\Seeder;
use App\Campaigns;

class CampaignsSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run() {
    $campaigns = \DB::table('campaigns')->insert([
        'id'               => 1,
        'name'             => 'test campaign',
        'url'              => 'http://example.com?test=true',
        'user_rate_min'    => '80',
        'user_rate_max'    => '100',
        'network_rate_min' => '100',
        'network_rate_max' => '120',
        'daily_limit'      => '10000',
        'hourly_limit'     => '1000',
        'status_id'        => '1',
        'user_id'          => '1'
    ]);
}
}

and database seeder class

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    Model::unguard();

     $this->call('UserSeeder');
     $this->call('DictionariesTargetGeoSeeder');
     $this->call('DictionariesTargetCategoriesSeeder');
     $this->call('DictionariesCampaignStatusesSeeder');
     $this->call('CampaignsSeeder');

    Model::reguard();
}

}

when I run php artisan db:seed, I have this error

➜  panel git:(master) ✗ pa db:seed
Seeded: UserSeeder
Seeded: DictionariesTargetGeoSeeder
Seeded: DictionariesTargetCategoriesSeeder
Seeded: DictionariesCampaignStatusesSeeder

[Illuminate\Database\QueryException]
SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "campaigns" does not exist  LINE 1: insert into "campaigns" ("id", "name", "url", "user_rate_min...                      ^ (SQL: insert into "campaigns" ("id", "name", "url", "user_rate_min", "user_rate_max", "network_rate_min", "network_rate_max", "daily_limit", "hourly_limit", "status_id", "user_id") values (1, test campaign, http://example.com80test=true, 100, 100, 120, 10000, 1000, 1, 1, ?))

[PDOException]
SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "campaigns" does not   exist LINE 1: insert into "campaigns" ("id", "name", "url", "user_rate_min...
                  ^

But table exists! I check in psql console. May transaction not commit in this moment?

If I ran ➜ panel git:(master) ✗ php artisan db:seed --class=CampaignsSeeder it works correctly

Why? :-)

insert() method expects an array of arrays (one array per row) but you are inserting one single array. Try with

$campaigns = \DB::table('campaigns')->insert([
    [
        'id'               => 1,
        'name'             => 'test campaign',
        'url'              => 'http://example.com?test=true',
        'user_rate_min'    => '80',
        'user_rate_max'    => '100',
        'network_rate_min' => '100',
        'network_rate_max' => '120',
        'daily_limit'      => '10000',
        'hourly_limit'     => '1000',
        'status_id'        => '1',
        'user_id'          => '1'
    ]
]);