Laravel 5.1刷新并为单个表设置种子
我希望在Laravel5.1中刷新并为单个表添加种子。这可能吗 我尝试了下面的方法,但它给出了一个错误(语法不正确) 如果我使用:Laravel 5.1刷新并为单个表设置种子,laravel,laravel-5,seeding,Laravel,Laravel 5,Seeding,我希望在Laravel5.1中刷新并为单个表添加种子。这可能吗 我尝试了下面的方法,但它给出了一个错误(语法不正确) 如果我使用:php artisan migrate:refresh它只会说: 无需迁移 您可以使用migrate:refresh命令回滚所有迁移,然后执行migrate命令。此命令可有效地重新创建整个数据库: php artisan migrate:refresh 您可以使用--class选项指定要单独运行的特定播种机类: php artisan db:seed --class
php artisan migrate:refresh
它只会说:
无需迁移
您可以使用
migrate:refresh
命令回滚所有迁移,然后执行migrate
命令。此命令可有效地重新创建整个数据库:
php artisan migrate:refresh
您可以使用--class
选项指定要单独运行的特定播种机类:
php artisan db:seed --class=UserTableSeeder
完整代码为:
php artisan migrate:refresh
php artisan db:seed --class=UserTableSeeder
希望这能有所帮助。可能首先只是备份数据库,删除它,然后检查整个种子设定、迁移和刷新机制是否有效。但首先要卸载artisan自动加载 最好先截断同一个表,然后进行种子设定:-
public function run()
{
Table::truncate();
//seed your table here
}
然后,您可以像这样运行相同的播种机:-
php artisan db:seed --class=YourSeeder
将清除状态表
所以你可以
>>> App\{MODEL_CLASS}::truncate()
当我不想清除所有表,尤其是用户时,我发现这非常有用。我认为到目前为止,没有任何答案能够解决迁移和植入单个表的问题。因此,给定迁移文件
database/migrations/create_foo_table.php
和种子文件database/seeds/FooTableSeeder.php
,其中包含FooTableSeeder
种子类,您可以执行以下操作:
php artisan migrate:refresh --path=database/migrations/create_foo_table.php
php artisan db:seed --class=FooTableSeeder
这将回滚、迁移并为Foo表设置种子。请参阅:在Laravel 5.1文档中(在撰写本文时,Laravel 7.x已过时,语法尚未更改)。您可以通过两个步骤完成:
数据库/seeds/DatabaseSeeder.php中设置的种子表
DatabaseSeeder.php
中对不想使用的播种器进行注释:
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
FooSeeder::class,
// BarSeeder::class,
// UserSeeder::class,
]);
}
}
让你的答案获得投票的一个好方法是加入一个例子或一个例子的链接。你能找到解决方案吗?
>>> App\{MODEL_CLASS}::truncate()
php artisan migrate:refresh --path=database/migrations/create_foo_table.php
php artisan db:seed --class=FooTableSeeder
php artisan migrate:refresh --path=database/migrations/00_create_foo_table.php
composer dump-autoload
php artisan db:seed
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
FooSeeder::class,
// BarSeeder::class,
// UserSeeder::class,
]);
}
}