由于我删除了 phpMyadmin 中的表,Php artisan 无法正常工作,如何撤消此操作?

Posted

技术标签:

【中文标题】由于我删除了 phpMyadmin 中的表,Php artisan 无法正常工作,如何撤消此操作?【英文标题】:Php artisan not working because i deleted the table in phpMyadmin , how to undo this? 【发布时间】:2017-05-23 20:09:02 【问题描述】:

我直接在我的 phpMyAdmin 中删除了一个表,当我运行命令 php artsan migrate:rollback 时,我收到以下错误:

无法打开:流:没有这样的文件或目录。

我已经从迁移文件夹中删除了迁移文件,为什么会出现这个错误??

我刚刚浏览了 laravel 迁移文档 HERE,我看到了以下命令:

php artisan migrate:rollback --step=5

所以我在命令行中尝试了以下内容:

php artisan migrate:rollback --step=1

回滚我上次的迁移,但它似乎不起作用。这就是我直接在 phpMyAdmin 中删除表的原因。

下面是我现在运行php artsan migrate:rollback时遇到的错误:

【问题讨论】:

只用一个 ID 创建表就可以了。 ;) 所有回滚操作都是删除表并在需要时创建它。可能只想通过创建文件并插入默认操作来创建迁移(一个空的)。只需省略创建内容,因为您只需要删除它(php artisan make:migration ,然后重命名文件) 【参考方案1】:

由于您在回滚之前删除了该文件,我建议您从您的 migrations 表中手动删除该条目。

搜索全名并仅删除 1 个条目。

DELETE FROM `migrations` where `name` = '[2017_01_09_xxx]';

但是,如果您的迁移已经提交并推送到远程,并且其他人正在使用相同的代码库,我建议您在本地环境中恢复表,并使用该名称恢复迁移文件并通过添加删除表新的迁移。

此流程将确保当其他人使用您的更改或您部署和运行迁移时,您可以毫无问题地执行此操作。

【讨论】:

【参考方案2】:

请尝试以下命令,就可以了。

清除缓存

php artisan cache:clear

作曲家自动加载

composer dump-autoload

现在重启你的 Laravel 服务器就可以了。

它现在可以工作了。但是,从不建议直接删除表和迁移文件。如果是这样的话,Laravel 根本不会使用迁移。下次请多多关照。

【讨论】:

以上是关于由于我删除了 phpMyadmin 中的表,Php artisan 无法正常工作,如何撤消此操作?的主要内容,如果未能解决你的问题,请参考以下文章

从 PHPMyAdmin 中删除数据时,DELETE 链接在 PHP 中不执行任何操作

SQL 语句超过 PHP 中的最长时间,但在 phpMyAdmin 中立即运行

由于删除根数据库,无法访问 PHPmyadmin

由于 PHP 版本,Apache 中的 PHPMyAdmin 500 内部服务器错误 ||新问题

MySQL 错误 #1146 无法删除已删除的表

在 mysql/phpmyadmin 中上传和显示图像