Php 完全重置Laravel 5迁移的东西?

Php 完全重置Laravel 5迁移的东西?,php,mysql,laravel,database-migration,laravel-artisan,Php,Mysql,Laravel,Database Migration,Laravel Artisan,长话短说,我在本地机器上完全搞砸了我的Laravel迁移。它们100%无法使用 我是第一次和Laravel 5合作,所以可以说,我只是在摆弄东西和测试水。在手动修补数据库、重写迁移、意外删除一两个表(然后是“migrations”表本身[doh!])之间,我处于这种混乱状态,我只想从头开始所有迁移工作。然而,我似乎不知道该怎么做 我现在被困在一个什么都不能做的状态 例如,当我执行php-artisan-migrate:refresh时,如果数据库中仍然有旧表的任何残余,我会得到一条基表或视图已经

长话短说,我在本地机器上完全搞砸了我的Laravel迁移。它们100%无法使用

我是第一次和Laravel 5合作,所以可以说,我只是在摆弄东西和测试水。在手动修补数据库、重写迁移、意外删除一两个表(然后是“migrations”表本身[doh!])之间,我处于这种混乱状态,我只想从头开始所有迁移工作。然而,我似乎不知道该怎么做

我现在被困在一个什么都不能做的状态

例如,当我执行
php-artisan-migrate:refresh
时,如果数据库中仍然有旧表的任何残余,我会得到一条
基表或视图已经存在的错误消息。但是,如果删除所有表,则会出现以下错误:

Next exception 'Illuminate\Database\QueryException' with message
'SQLSTATE[42S02]: Base table or view not found: 1146 Table
'bsd_status.projects' doesn't exist (SQL: select * from `projects`)' in 
path/to/src/Illuminate/Database/Connection.php:620
我已运行以下命令:

$ php artisan clear-compiled
$ php artisan cache:clear
$ php composer dump-autoload
$ php artisan migrate:install

我甚至不确定我做这些事情的顺序是否正确。无论如何,除了完全重新安装Laravel之外,如何将所有的迁移恢复到“开箱即用”状态呢?任何帮助都将不胜感激。谢谢

我喜欢做的是使用您在设备上使用的工具手动删除所有表。对我来说,我只使用phpmyadmin。在那之后我会

php artisan migrate:install
php artisan migrate:refresh
不知道这是否是官方的方式,但每次都有效

如果你不想使用phpmyadmin,你可以 通过命令行登录mysql

mysql -u root -p
DROP DATABASE laraveldb;
CREATE DATABASE laraveldb;

尽管@Goddard的回答和@nozzleman的评论都非常有用(我已经多次使用了这两个建议,谢谢),但解决方案与迁移无关。嗯……除了我一开始就把他们搞砸了

不管怎样,我没有做任何事情来解决这个问题,所以我戴上了我的“思考真的很重要”的帽子。咒骂了几分钟后,我意识到了一些事情。看起来,即使只是从命令行运行
artisan
,我设置的任何路由或提供程序都试图被“解析”(或任何合适的术语)。因此,当应用程序启动bootstrap/init/start/run阶段时,我一定在某处接到一个电话,试图从丢失的表中获取数据

我决定确保我的实际代码中没有发生任何奇怪的事情,所以我检查了我的routes文件(app/Http/routes.php)和所有服务提供商文件(app/Providers/*)以查看我是否试图在其中任何一个文件中检索模型数据。瞧,我打开app/Providers/AppServiceProvider.php,发现如下:

AppServiceProvider.php

public function boot()
{
    $layout = 'default';

    if ( Request::has('layout') ) {
        $layout = Request::input('layout');
    }

    view()->share('sharedAppData', [
        'layout' => $layout,
        'projects' => App\Project::all() // <- WTF, mate?
    ]);
}
公共函数启动()
{
$layout='default';
if(请求::has('layout')){
$layout=Request::input('layout');
}
view()->share('sharedAppData'[
“布局”=>$layout,
'projects'=>App\Project::all()//尝试以下操作:

 composer dump-autoload
 composer clear-cache

您是否尝试过删除整个数据库,创建一个新数据库,然后简单地运行迁移?删除迁移表,备份迁移文件夹,并将其保留为空。现在使用从数据库生成迁移的包(搜索它),您就完成了。这不是“php composer dump autoload”,您只需要使用“composer dump autoload”在composer自动加载的情况下,它适合我!!无论如何,有官方文档的备份将是非常棒的,所以我可以依赖这种方法:)为什么?请在你的代码中添加一些解释,特别是因为其他答案看起来完全不同。我看到在其他的回答中,我不确定哪些文件确实可以清理,但它可以工作。