当我迁移表时,我看到这个错误,
数据库状态[42S01]:基表或视图已存在:1050表'payments'已经存在(SQL:创建表格payments
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePaymentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('payments', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('resnumber');
$table->string('course_id')->default('vip');
$table->string('price');
$table->boolean('payment')->default(false);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('payments');
}
}
8条答案
按热度按时间7lrncoxx1#
如果你在Laravel 5.5上,你可以执行
php artisan migrate:fresh
。这个命令将删除所有的表,然后重新创建它们。我希望它能有所帮助。vc6uscn92#
如果您的数据库中有一个表,并且不希望migrate创建它,您可以通过在创建前选中Schema::hasTable来忽略它
14ifxucb3#
如果要重新创建表,请先运行
php migrate:rollback
以删除现有表。此命令将在迁移中运行down()
方法。然后运行
php migrate
再次创建表。ylamdve64#
在我的例子中,在
php migrate:rollback
之后得到了Nothing to rollback
,并且没有解决。因为数据库中的migrations
表是空的。所以解决方案是打开来自 composer 的修补程序以下是执行上述命令的结果
在Connection.php第647行:数据库状态[42S01]:基表或视图已存在:1050表'users'已存在(SQL:创建表
users
(id
整数无符号非空自动递增主键,name
变量(255)非空,email
变量(255)非空,password
变量(255)非空,remember_token
变量(100)空,created_at
时间戳空,updated_at
时间戳为空)默认字符集utf8mb4校对utf8mb4_unicode_ci)在Connection.php第449行:数据库状态[42S01]:基表或视图已存在:1050表'users'已存在
如果方法
down()
不存在,也要定义它。否则,它会显示
数据库状态[42S02]:未找到基表或视图:1051未知表'XYZ. ABC'(SQL:跌落台
ABC
)x33g5p2x5#
先做php工匠迁移:回滚;然后到php我的管理面板,并删除剩余的表。然后做php工匠迁移:新鲜它会工作:-)
um6iljoc6#
这是我的场景:
照明\数据库\查询异常:数据库状态[42S01]:基表或视图已存在:1050表'migrations'已存在(SQL:创建表
migrations
(id
bigint无符号非空自动递增主键,created_at
时间戳空,updated_at
时间戳空)默认字符集utf8mb4排序'utf8mb4_unicode_ci')解决方案:
1.删除位于您的项目/数据库/迁移/2020_02_04_031638_创建迁移表. php中的文件
1.运行php artisan migrate,然后你的新表将在你的数据库中创建
nwo49xxi7#
如果您使用的是laravel 9版本,请使用此命令
php工匠迁移:新鲜
这个命令会对你有帮助的,那是我的工作.
68bkxrlz8#
根据错误,数据库表已存在。以下是可能有用的解决方案。
**解决方案1:**手动删除整个数据库表(包括migrations表),然后重新运行
php artisan migrate
命令。**解决方案2:**如果您在一些现有的表中有一些记录,并且不想丢弃/删除它们,那么,从phpMyAdmin或相关的目录中点击
migrations
表,查看迁移表的列表。删除/编辑导致错误的特定表,然后再次运行php artisan migrate
命令。**解决方案3:**由于某些原因,您可能需要运行特定的迁移文件,下面的命令就是您所需要的。
php artisan migrate:refresh --path=/database/migrations/file-name.php
记住用实际文件名替换
file-name.php
。希望这对某人有帮助。:)