Laravel 播种器是否覆盖整个 table

Does Laravel seeder overwrite the entire table

Laravel 播种器会覆盖整个 table 还是可以将其添加到 table 而无需修改现有内容?

默认情况下,

Laravel 播种器不会覆盖 table,它只会追加。如果您想在播种之前 truncate table,您可以编写功能。

Seeder 通常只是添加一些数据。它只是一个简单的 class,它做这样的事情:

// Insert one row of random data into the 'users' table
DB::table('users')->insert([
    'name' => str_random(10),
    'email' => str_random(10).'@gmail.com',
    'password' => bcrypt('secret'),
]);

所以不,如果您不告诉它这样做,它不会覆盖任何内容。

要创建种子迁移,请使用以下 laravel 包 https://github.com/slampenny/SmartSeeder

它创建版本化播种,并且只会播种未迁移的新文件,就像默认的 table 迁移