工匠回滚,未定义索引(文件丢失)

时间:2017-08-24 16:05:10

标签: laravel rollback artisan

我试图在Laravel 5.4中进行回滚。我从迁移文件夹中手动删除了一个文件。现在,当我尝试回滚时,我收到一个错误:

[root@xxx]# php artisan migrate:rollback
    [ErrorException]
    Undefined index: 2017_08_22_204640_create_tasks_table

该文件是一个测试(带有控制器和视图),但我在Laravel上是新手,并且不知道手动删除该文件会有问题。

现在如何修复?

编辑:主要目标是从使用迁移创建的表中重命名列。

我制作了这个迁移文件:

[root@xxx]# php artisan make:migration rename_nombre_generadora_column --table="admin_generadora" --create
    Created Migration: 2017_08_24_160600_rename_nombre_generadora_column

但后来我发现表的名称错了,应该是admin_generadoras。我想创建一个新的迁移文件,但是我收到了这个错误:

[root@xxx]# php artisan make:migration rename_nombre_generadora_column --table="admin_generadoras" --create


[InvalidArgumentException]
A RenameNombreGeneradoraColumn migration already exists.

那么如何撤消迁移呢?

2 个答案:

答案 0 :(得分:3)

在这种情况下,我总是倾向于删除整个数据库并再次运行“正确”的迁移。你有种子吗?你有工厂吗?

我复制了一些我写过的文字before

注意迁移以及如何正确执行(恕我直言):

  1. 始终使用迁移来创建和更新数据库架构
  2. 如果您是单独的开发人员并且 没有生产环境设置,只需修改迁移并重置数据库(全部删除)表)+迁移
  3. 如果您是团队已经设置了生产环境,请始终创建新迁移
  4. 不要太费用down()方法
  5. 创作者和创作者的一些材料。 Laravel的朋友关于迁移的信息可以在这个播客http://www.laravelpodcast.com/episodes/68236-episode-53-bigger-better中听到大约30分钟。

    您现在需要做的是了解深入了解迁移的工作原理!要做到这一点,你需要看看迁移表并使用它;玩工匠和迁移相关的命令。请记住,您可以使用SQL更新/修改数据库模式(这意味着使用某种类型的数据库客户端,如PhpMyAdmin),还可以修改/更新相应的迁移。

答案 1 :(得分:2)

--table标志只是帮助您更快地填写迁移文件。只需转到RenameNombreGeneradoraColumn文件,然后将admin_generadora更改为admin_generadoras