Laravel 迁移未定义索引
Posted
技术标签:
【中文标题】Laravel 迁移未定义索引【英文标题】:Laravel migration undefined index 【发布时间】:2017-01-29 17:27:43 【问题描述】:我正在使用 Laravel 5.3。我删除了我的一个迁移文件名称“功能”以及与之相关的所有内容,例如其他表中的 id 等。然后我手动从数据库中删除了该表。但是现在当我在运行命令“php artisan migrate:refresh”。它显示错误异常与“未定义索引:***_create_features_table”。当我运行“php artisan migrate”时。它显示它成功并且所有表都成功出现在数据库中。但是当我运行迁移时:刷新所有表都会消失。我应该怎么做才能完全删除迁移文件?
【问题讨论】:
你试过截断迁移表吗? no. 你能提一下我想怎么做吗? 在您的数据库中,您有一个表名migrations
。那里保存了所有迁移信息。首先删除所有记录。之后运行php artisan migrate
。这可能会对您有所帮助
尝试了您的解决方案..现在它甚至没有使用迁移命令
如果问题仍然存在。请按照以下步骤操作。
【参考方案1】:
在迁移中只需添加 $table->index(['column Name 1',''column Name 1']);
【讨论】:
【参考方案2】:在我的案例中,我忘记在运行 Infyomlabs 来创建脚手架之前进行 Laravel 迁移! 所以“未定义索引”的原因之一是表还没有。
【讨论】:
【参考方案3】:如果您有 Undefined index
错误并且您的迁移是使用 --path 选项进行的,则添加到您的 ModuleServiceProvier
boot()
方法:
$this->loadMigrationsFrom(base_path('database/migrations/directory-name'));
【讨论】:
【参考方案4】:首先尝试检查您是否进行了正确的迁移
php artisan migrate:status
然后你可以尝试类似的东西
php artisan migrate:refresh --step=1
然后再次检查状态。
【讨论】:
【参考方案5】:这就是我所做的。我从数据库中清除了所有数据,包括所有表,然后运行“php artisan migrate”..这就是我让它工作的方式..但我正在寻找一个更好的解决方案,它不会需要从数据库中删除所有内容。
【讨论】:
composer dump-autoload
将纠正您的所有问题。所以不要惊慌。如果您担心,请先备份您的项目。在运行上述脚本之前。
清除数据库表对我有用。在 Composer 中转储自动加载没有任何效果。【参考方案6】:
试试这个。
先手动删除app/database/migrations/my_migration_file_name.php
下的迁移文件
重置作曲家自动加载文件:composer dump-autoload
修改您的数据库:从migrations table
中删除最后一个条目
【讨论】:
感谢 Manish 的咨询。我认为这个程序会起作用。下次我会完成这个。 谢谢这位兄弟 使用 sequel pro 从迁移表中删除行,这就像一个魅力。谢谢!以上是关于Laravel 迁移未定义索引的主要内容,如果未能解决你的问题,请参考以下文章
Laravel PackageManifest.php:未定义索引:名称