当前位置: 首页 > 知识库问答 >
问题:

如何修复"基表或视图未找到: 1146"错误时运行'php工匠迁移'命令?

钱飞翼
2023-03-14

我正在尝试使用rumphp artisan migrate生成表迁移,但出现了一个错误:

[2016-03-08 05:49:01]本地的。错误:带有消息SQLSTATE[42S02]的异常'PDOExc0019':未找到基表或视图:1146表'testing.permissions'不存在'在D:\xampp\htdocs\LMS-测试\供应商\laravel\框架\src\照明\数据库\Connection.php:333

我尝试了基表或视图未找到: 1146表Laravel 5和做Laravel教程,得到"基表或视图未找到: 1146表'sdbd_todo.migrations'不存在",但没有成功。

我还尝试运行了php artisan list,但得到了相同的错误。

更新

**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

共有3个答案

倪炎彬
2023-03-14

我也遇到了类似的问题。

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

//Problematic code
Route::view('users', 'users', [ 'users' => User::all() ]);

所以我把它改成了

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

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

有翰海
2023-03-14

我只是有同样的问题。

我的解决方案是评论我已经放入AppServiceProvider引导方法中的内容(因为在那里我有不存在更多的Model请求)。

韦睿
2023-03-14

检查迁移文件,可能您正在使用Schema::table,如下所示:

Schema::table('table_name', function ($table)  {
    // ...
});

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

Schema::create('table_name', function ($table)  {
    // ...
});

Laracast在该链接中提供更多信息。

 类似资料:
  • 我在我的电脑上安装了homestead,然后我尝试通过本地域访问我的文件。但是当我尝试连接DB时,会显示这个错误。我也无法访问我的其他项目。我把一切都安排得很好。但我不知道为什么给我看这个错误。 注意:我使用的是Windows 8.1 这是我的设置代码: 亚马尔家园酒店 ip:“192.168.10.10” 内存: 2048 CPI: 1 提供者:virtualbox 授权:~/.ssh/id\u

  • 当我尝试使用Laravel 5将数据保存到mysql时,我得到了这个错误,其他形式和保存()方法工作正常,但这一个: 这是我的Controller存储方法: 这是我的模型: 我一定是忽略了一些非常明显的事情,因为我不明白为什么拉雷维尔会加上一个“S”这个词。这个表是cotizacion而不是cotizacions。 如何对此进行故障排除?

  • 我创造了一个迁移 任何我写的CMD这个错误是可见的。 [Illumb\Database\QueryException]SQLSTATE[42S02]:找不到基表或视图:1146表“prj_roocket.permissions”不存在(SQL:select*from) [PDOException]SQLSTATE[42S02]:未找到基表或视图:1146表“prj_roocket.permissi

  • 问题内容: 我在尝试使用Laravel 5将数据保存到mysql时收到此错误消息,其他形式和save()方法都可以正常工作,但是以下一种方法: 这是我的Controller存储方法: 这是我的模型: 我必须忽略一些确实很明显的原因,因为我无法理解Laravel为什么在表中添加cot而不是cotizacion。 我该如何解决? 问题答案: 我猜想Laravel无法确定您用于表名的单词的复数形式。 只

  • 我正在尝试使用spark sql运行一个基本的java程序 如果有人能给我指出一些在斯巴克-sql(斯巴克-2.1.1)上可以阅读的好材料,那也太好了。我计划使用火花来实现ETL,连接到MySQL和其他数据源。 异常在线程"main"org.apache.spark.sql.分析异常:未找到表或视图:;第1行pos 21;

  • Im my routes.php我有以下内容: 当我的数据库还没有表,我想进行php artisan迁移时,结果是:SQLSTATE[42S02]:找不到基表或视图:1146表“ae_dev.categories”不存在 我的迁移文件: 我认为Laravel托盘从routes.php调用类别,想做选择或某种想法,所以我想运行创建类别表的迁移,但上述错误是在... 我怎样才能解决这个问题?