sql - 运行迁移时出现“SQLSTATE[42S02]:未找到基表或视图”
问题描述
我目前正在研究使用 Laravel 开发 CMS 的课程。我对我的页面进行了一些更改,因为我想给它们一个“位置”特征来更改顺序。我以为我可以删除这些表,然后运行“php artisan migrate”,然后再次为表播种。现在我总是收到以下错误消息:
C:\xampp\htdocs\siggen-cms>php artisan migrate
In Connection.php line 664:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'siggen-cms.pages' doesn't exist (SQL: select * from `pages`)
In Connection.php line 326:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'siggen-cms.pages' doesn't exist
有没有人解决这个问题。stackoverflow 上的所有类似问题都没有帮助。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pages', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('url')->unique();
$table->text('content');
$table->integer('position')->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('pages');
}
}
解决方案
可能导致此问题的几个潜在问题:
- 如果您要删除所有内容并重新开始新的迁移,请检查迁移的位置(基于时间/日期)以确保在创建表之后需要该表
pages
。 更有可能基于您说“我认为我可以删除表然后运行“php artisan migrate”,您实际上并没有创建表,因为您的迁移没有为这个特定的表激活。IE 迁移已经运行pages文件,根据数据库迁移表,所以这个迁移文件不会被触及。
一个。要解决此问题,您可以删除整个数据库并从头开始,您可以尝试回滚迁移,或者为了快速修复,删除迁移表中此迁移文件所在的行。IE
SELECT * FROM migrations
,找到id
迁移页面文件的行,然后删除该行。然后,下次运行php artisan migrate
时,它将创建表。
推荐阅读
- android - 反应原生地图折线
- c# - Unity3D:如何调用从另一个类实例化预制件的方法?
- tsql - DATEADD 的 Pyspark 实现
- python - 如何在 xpathin selenium 中使用运算符“in”
- json - 我在远程分页中将数据作为表单数据而不是 JSON 获取
- java - 找不到 Spring Boot 2.1 EntityManagerFactory Bean
- c# - 如何读取 Azure Active Directory 的域
- python - 在单键多值字典的 python 列表中,如何修改每个字典的第 n 个值?
- gdb - yocto:在构建 gdb 时在构建中添加 .gdbinit
- python - 从excel导入坐标 - Python