Laravel 迁移后的种子
Laravel seed after migrating
我可以在迁移中添加哪些内容,以便在迁移完成后自动为 table 播种测试数据?
或者您有单独播种吗?
您可以使用 --seed
选项调用 migrate:refresh
以在迁移完成后自动播种:
php artisan migrate:refresh --seed
这将回滚并重新运行你所有的迁移和运行之后的所有播种机。
作为额外的一点,您还可以始终使用 Artisan::call()
到 运行 来自应用程序内部的 artisan 命令:
Artisan::call('db:seed');
或
Artisan::call('db:seed', array('--class' => 'YourSeederClass'));
如果你想要特定的播种机 class。
虽然 是正确的,但我想详细说明你的第二个问题。
Or do you have to seed separately?
是的。既然你在谈论 test data,你应该避免将 seeding 与 migration 耦合。当然,如果这不是测试数据,而是应用程序数据,您始终可以将插入数据作为迁移的一部分。
顺便说一句,如果您想将数据作为 testing 的一部分播种,您可以从 Laravel 测试用例中调用 $this->seed()
。
如果您不想删除现有数据并希望在迁移后播种
对于测试数据是正确的,但是 运行 遵循 artisan 命令
php artisan migrate:refresh --seed
在生产中将刷新您的数据库,删除从前端输入或更新的任何数据。
如果您想在迁移过程中为您的数据库播种(例如对您的应用程序进行更新以保留现有数据),例如添加新的 table 国家和种子数据,您可以执行以下操作:
在 database/seeds 和您的位置 table 迁移
中创建数据库播种器示例 YourSeeder.php
class YourTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tablename', function (Blueprint $table) {
$table->increments('id');
$table->string('name',1000);
$table->timestamps();
$table->softDeletes();
});
$seeder = new YourTableSeeder();
$seeder->run();
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tablename');
}
}
运行 composer dump-autoload
如果 YourTableSeeder class.
没有找到 php class 错误
我可以在迁移中添加哪些内容,以便在迁移完成后自动为 table 播种测试数据?
或者您有单独播种吗?
您可以使用 --seed
选项调用 migrate:refresh
以在迁移完成后自动播种:
php artisan migrate:refresh --seed
这将回滚并重新运行你所有的迁移和运行之后的所有播种机。
作为额外的一点,您还可以始终使用 Artisan::call()
到 运行 来自应用程序内部的 artisan 命令:
Artisan::call('db:seed');
或
Artisan::call('db:seed', array('--class' => 'YourSeederClass'));
如果你想要特定的播种机 class。
虽然
Or do you have to seed separately?
是的。既然你在谈论 test data,你应该避免将 seeding 与 migration 耦合。当然,如果这不是测试数据,而是应用程序数据,您始终可以将插入数据作为迁移的一部分。
顺便说一句,如果您想将数据作为 testing 的一部分播种,您可以从 Laravel 测试用例中调用 $this->seed()
。
如果您不想删除现有数据并希望在迁移后播种
php artisan migrate:refresh --seed
在生产中将刷新您的数据库,删除从前端输入或更新的任何数据。
如果您想在迁移过程中为您的数据库播种(例如对您的应用程序进行更新以保留现有数据),例如添加新的 table 国家和种子数据,您可以执行以下操作:
在 database/seeds 和您的位置 table 迁移
中创建数据库播种器示例 YourSeeder.phpclass YourTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tablename', function (Blueprint $table) {
$table->increments('id');
$table->string('name',1000);
$table->timestamps();
$table->softDeletes();
});
$seeder = new YourTableSeeder();
$seeder->run();
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tablename');
}
}
运行 composer dump-autoload
如果 YourTableSeeder class.