【问题标题】:Artisan rollback, Undefined index (file missing)Artisan 回滚,未定义索引(文件丢失)
【发布时间】:2018-02-02 14:45:57
【问题描述】:

我正在尝试在 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.

那么我该如何撤消该迁移?

【问题讨论】:

  • 那么您是否需要回滚该迁移?您可以打开数据库并查看迁移表,在该表中您可能会知道发生了什么;如果您删除了迁移文件(已应用),请删除数据库中的相应行(迁移表)。
  • 我将编辑我的问题,我在两件事上遇到了问题

标签: laravel rollback laravel-artisan


【解决方案1】:

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

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

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

  1. 始终使用迁移来创建和更新数据库架构
  2. 如果您是一个单独的开发人员并且没有没有生产环境设置,只需修改迁移并重置数据库(删除所有表)+ 迁移
  3. 如果您是团队已经建立了生产环境,请始终创建新的迁移
  4. 不要太在意down() 方法

Laravel 的创建者和朋友关于迁移的一些材料可以在这个播客http://www.laravelpodcast.com/episodes/68236-episode-53-bigger-better 大约 30 分钟标记。


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

【讨论】:

    【解决方案2】:

    --table 标志只是帮助您更快地填写迁移文件。只需进入RenameNombreGeneradoraColumn 文件并将admin_generadora 更改为admin_generadoras

    【讨论】:

      猜你喜欢
      • 2014-12-21
      • 2011-08-31
      • 2015-04-26
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 2014-05-14
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多