我从我最喜欢的包Provider spatie那里得到了这个包的laravel-tag,并将其放入项目中进行测试.在第一次测试之后,我想清空php artisan migrate:refresh --seed个表,以便运行进一步的测试.但我有个例外:

SQLSTATE[HY000]: General error: 1 table "tags" already exists (SQL: create table "tags" ("id" integer not null primary key autoincrement, "name" text not null, "slug" text not null, "type" varchar, "order_column" integer, "created_at" datetime, "updated_at" datetime))

查看迁移文件后,我发现Spatie的迁移没有down()函数.因此数据保持不变,我不能开始回滚或重置.我一点也不喜欢这样.我添加了一个down函数munell,但即使在那里我也得到了上面的异常.因此,我有两个问题:

  1. 有什么理由不传递down()函数吗?
  2. 我要怎么做才能清空这张新桌子?

提前谢谢你,麦克斯

推荐答案

对于你的第二个问题,你可以用php artisan db:wipe.这将成功删除所有表.

关于你的第一个问题:

有什么理由不传递down()函数吗?

在迁移中省略向下功能是不规范的.但在这种情况下,我只能推测为什么斯帕特会这样做.所以很难回答,但你问这个问题很好.只需手动添加down()函数即可.在删除数据库一次之后,它应该还可以处理future 的回滚和重置.

Laravel相关问答推荐

如何在 Laravel 中获取特定月份的最后一个日期?

Laravel 数据未传递到下拉框

Laravel 9 上的数组差异助手

使用 fetch api 时 Laravel 控制器不存在错误

Laravel Blade:@stop VS @show VS @endsection VS @append

laravel 控制器中的全局变量

使用 Laravel 限制多态多对多关系中的相关记录

如何在 Laravel 5.5 的 FormRequest 类中返回自定义响应?

没有 index.php 的路由不起作用

如何使用 Laravel 模型访问数据库视图?

Laravel 5.x 中 onUpdate / onDelete 的可用操作

在 laravel 5.2 中禁用特定路由的 Web 中间件

Array_unique 上一个 laravel Eloquent的集合

Laravel 随机排序

在 Laravel 中生成随机数

Laravel Mail 发送Electron邮件但返回 false

Laravel 5 - 跳过迁移

Laravel 5 new auth:获取当前用户以及如何实现角色?

Laravel:如何在 PhpUnit 上启用堆栈跟踪错误

你如何在 Laravel 5.3 的新通知服务生成的Electron邮件中添加图像?