未找到Laravel 5 Migrate Base表或视图:1146

Man*_*ndy 10 php laravel laravel-5

我遇到了大问题.我试图朗读php artisan migrate生成表迁移,但我收到 php artisan list错误.我试过并在互联网上搜索,我误解了,但我没有得到任何解决方案.

我也试过基表或查看未找到:1146表Laravel 5做一个Laravel教程,得到"基表或视图未找到:1146表'sdbd_todo.migrations'不存在",但我没有成功.

我也试过跑php artisan migrate,但我又得到了同样的错误.我不知道为什么.请建议我的解决方案.

更新

**RolesPermission migration table**

Schema::create('roles', function(Blueprint $table){
            $table->increments('id');
            $table->string('name')->unique();
            $table->string('label');
            $table->string('description')->nullable();
            $table->timestamps();            
        });

        Schema::create('permissions', function(Blueprint $table){
            $table->increments('id');
            $table->string('name')->unique();
            $table->string('label');
            $table->string('description')->nullable();
            $table->timestamps();            
        });

        Schema::create('permission_role', function(Blueprint $table){
            $table->integer('permission_id')->unsigned();
            $table->integer('role_id')->unsigned();

            $table->foreign('permission_id')
                    ->references('id')
                    ->on('permissions')
                    ->onDelete('cascade');

            $table->foreign('role_id')
                    ->references('id')
                    ->on('roles')
                    ->onDelete('cascade');

            $table->primary(['permission_id', 'role_id']);
        });

        Schema::create('role_user', function(Blueprint $table){
            $table->integer('role_id')->unsigned();
            $table->integer('user_id')->unsigned();

            $table->foreign('role_id')
                    ->references('id')
                    ->on('roles')
                    ->onDelete('cascade');

            $table->foreign('user_id')
                    ->references('id')
                    ->on('users')
                    ->onDelete('cascade');

            $table->primary(['role_id', 'user_id']);

        });


.env file
APP_ENV=local
APP_DEBUG=true
APP_KEY=W8YWZe3LCngvZzexH3WLWqCDlYRSufuy

DB_HOST=127.0.0.1
DB_DATABASE=testing
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=log
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Run Code Online (Sandbox Code Playgroud)

Dar*_*boy 10

我只是遇到了同样的问题。

我的解决方案是评论我在boot方法中放入的内容AppServiceProvider(因为在那里我有不存在的模型请求)。

  • 此问题的解决方案:/sf/answers/2939851071/ (2认同)

Jin*_*ony 8

我把它跑到了类似的问题上。

好像我在路由文件中执行了一个模型查询。所以它每次都会执行,甚至在运行实际迁移之前。

//Problematic code
Route::view('users', 'users', [ 'users' => User::all() ]);
Run Code Online (Sandbox Code Playgroud)

所以我把它改成

Route::get('/users', function () {
    return view('users', ['users' => User::all()]);
});
Run Code Online (Sandbox Code Playgroud)

一切正常。确保在执行路径上没有执行任何模型查询,然后尝试迁移。


Vla*_*ero 6

检查您的迁移文件,也许您正在使用Schema :: table,如下所示:

Schema::table('table_name', function ($table)  {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

如果要创建新表,则必须使用Schema :: create:

Schema::create('table_name', function ($table)  {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

Laracast 有关此链接的更多信息


Rom*_*ene 5

检查您的所有服务提供商。在其中一种引导方法中,可能会调用尚未运行迁移的模型。


Dha*_*tel 0

我曾经遇到过同样的问题,我想问题不在您的迁移中,但看起来在数据库中创建权限表之前检查了权限。确保您没有auth middleware添加到您的路线中。或注释掉使用来自 的权限表的任何服务提供商config/app.phpauth middleware最有可能从路线中删除直到生成迁移才能解决您的问题