Laravel php artisan migrate:未找到基表或视图

问题描述 投票:0回答:1

我实际上正在构建一个基于 Laravel 的简单 Web 应用程序。 我创建了一张模型卡,并想为此添加一个迁移。 当我运行命令:“php artisan migrate”时,出现错误

 SQLSTATE\[42S02\]: Base table or view not found: 1146 Table      'agenda.migrations' doesn't exist (Connection: mysql, SQL: select\<\\migration from migrations order by batch asc,migration asc)

at vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php:822
818▕                     $this-\>getName(), $query, $this-\>prepareBindings($bindings), $e
819▕                 );
820▕             }
821▕
➜ 822▕             throw new QueryException(
823▕                 $this-\>getName(), $query, $this-\>prepareBindings($bindings), $e
824▕             );
825▕         }
826▕     }

所以我尝试运行 php artisan migrate:install 来创建我的迁移表并且它有效。但是当我再次运行 php artisan migrate 时它会删除迁移表。

我也尝试过:php artisan migrate:reset 和 php artisan migrate:rollback

这是我的卡类代码

<?php

namespace App\\Models;

use Illuminate\\Database\\Eloquent\\Factories\\HasFactory;
use Illuminate\\Database\\Eloquent\\Model;

class Card extends Model
{
use HasFactory;
public string $title;
public string $description;
}

我的迁移:

<?php

use Illuminate\\Database\\Migrations\\Migration;
use Illuminate\\Database\\Schema\\Blueprint;
use Illuminate\\Support\\Facades\\Schema;

return new class extends Migration
{
/\*\*
\* Run the migrations.
\*/
public function up(): void
{
Schema::create('cards', function (Blueprint $table) {
$table-\>id();
$table-\>timestamps();
});
}

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('cards');
    }

};

AppServiceProvider.php 上的启动功能没有任何内容

如何解决这个问题? 编辑启动功能??运行特殊命令?

php laravel class model migration
1个回答
0
投票

遇到的错误可能源于迁移文件尝试回滚数据库中不存在的表。以下是解决此问题的分步指南:

1。验证表是否存在: 首先,确认数据库中是否存在cards表。检查您的数据库架构以确保已创建表。如果不存在,请继续下一步。

2。修改迁移文件: 如果 cards 表不存在,请考虑注释掉与 Card 模型相关的迁移文件中 down() 方法中的内容。此步骤可防止回滚操作尝试删除不存在的表。

例如,暂时注释掉 down() 方法中的代码:

public function down(): void
{
    // Schema::dropIfExists('cards');
}

运行回滚命令: 注释掉 down() 方法后,再次运行回滚命令:

php artisan migrate:rollback

3.数据库测试: 如果问题仍然存在,请考虑明确创建一个单独的或新的数据库以用于测试目的。迁移到这个新数据库以观察迁移运行是否没有错误。这种方法有助于隔离潜在的数据库特定问题。

遵循这些步骤应有助于识别和解决与迁移相关的问题。通过验证表是否存在、调整迁移文件以及可能在不同的数据库上进行测试,您可以解决问题并更有效地继续 Laravel 迁移。

© www.soinside.com 2019 - 2024. All rights reserved.