我使用php artisan db::seed
来填充我的数据库。有没有一种方法可以回滚我填充到数据库中的内容?
我似乎找不到类似于php artisan db::seed rollback
的命令。
我使用php artisan db::seed
来填充我的数据库。有没有一种方法可以回滚我填充到数据库中的内容?
我似乎找不到类似于php artisan db::seed rollback
的命令。
您还可以使用 migrate:refresh 命令来种子化您的数据库,该命令还将回滚并重新运行所有迁移。该命令对于完全重构数据库非常有用:
php artisan migrate:refresh --seed
Artisan::call('db:seed', ['--class' => 'CustomSeeder']);
并在顶部添加 use Illuminate\Support\Facades\Artisan;
。 - francisco使用Undo Seeder为Laravel。
安装UndoSeeder后,以下artisan命令可用:
db:seed-undo Undo seeds in the seeds directory.
db:seed-refresh Undo seeds run seeds again.
如果你想要清空一张表格,那么只需要使用 TRUNCATE 命令清空它,并重新插入数据即可:
php artisan db:seed --class=UsersTableSeeder
对于这么简单的任务,不需要额外的软件包。
使用您正在使用的任何平台(phpMyAdmin / mySql-Workbench / DB编辑器插件等)打开数据库表,并手动删除种子内容。然后,您将能够使用php artisan db:seed
重新填充表格。
最简单的方法是进入你的
数据库种子文件
文件夹,手动删除你想要移除的文件,然后运行php artisan migrate:fresh
命令。
我正在寻找其他东西,比如我已经运行了php artisan db:seed
,然后我想在UserSeeder
中更改一些内容,比如更改电子邮件地址。
因此,如果您想更改Seeder类中的某些内容,并且已经运行了db:seed
命令。
那么首先您必须在任何其他代码之前添加截断函数,例如如果您有UserSeeder
类,则在播种所有User
模型之前在运行函数中添加以下代码:
User::truncate();
然后你所要做的就是重新运行该命令。
php artisan db:seed
根据您的更改,它将再次生成所有类,并删除数据库中已经生成的Users
。您可以使用此方法来截断表并重新插入记录,适用于任何模型。
php artisan migrate:fresh
测试并清除数据库...没有真正需要有一个_rollback_ seeder...这意味着seeder或类似工具的实现或使用很差...解决方案在其他地方,而不是回滚seeder。 - matiaslauriti