我以前创建了用户表。现在,我已经创建了一个新的迁移,以便在我的模式中创建一个新的books表。当我尝试运行命令时
php artisan migrate
它表明:
[Illuminate\Database\QueryException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' alre
ady exists (SQL: create table `users` (`id` int unsigned not null auto_incr
ement primary key, `username` varchar(255) not null, `email` varchar(255) n
ot null, `password` varchar(255) not null, `created_at` timestamp default 0
not null, `updated_at` timestamp default 0 not null) default character set
utf8 collate utf8_unicode_ci)
这是我的新迁移表:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBooksTable extends Migration {
public function up()
{
Schema::create('books', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->string('auther');
$table->string('area');
$table->timestamps();
});
}
public function down()
{
Schema::drop('books');
}
}
我怎样才能消除这个错误?
我也有同样的问题。原因是migrations文件夹中的文件名与数据库中的迁移名称不匹配(请参见迁移表)。它们应该是一样的。
你需要跑步
php artisan migrate:rollback
如果这也失败了,只需进入并删除所有表,您可能必须这样做,因为您的迁移表似乎被弄乱了,或者您的用户表在运行上一次回滚时没有删除该表。
编辑:
发生这种情况的原因是您之前运行了回滚,并且代码中有一些错误或者没有删除表。然而,这仍然会破坏laravel迁移表,就其而言,您现在没有将用户表向上推的记录。但是,用户表已经存在,并抛出此错误。
在v5中。x、 你可能仍然面临这个问题。因此,请尝试先使用手动删除相关表
PHP工匠修补程序
然后
Schema::drop('books')
(并用q
退出)
现在,您可以成功地php artisan迁移:rollback
和php artisan迁移
。
如果这种情况反复发生,您应该检查迁移中的down()
方法是否显示了正确的表名。(如果更改了表名,则可能是一个陷阱。)
问题内容: 我以前创建了用户表。现在,我创建了一个新迁移,以在架构内创建一个新的books表。当我尝试运行命令时 表明: 这是我的新迁移表: 如何摆脱错误? 问题答案: 你需要跑步 如果仍然失败,则只需删除所有您可能要做的表,因为您的迁移表似乎混乱了,或者您在运行前一个回滚时的用户表没有删除该表。 编辑: 发生这种情况的原因是您先前运行了一个回滚,并且在代码中有一些错误或没有删除该表。但是,这仍然
我有一些表,我想在这个表中添加新的列。我想添加默认值为空的字符串列。 我试着这样加上去 或 但我有一个错误
我在文件中的迁移中添加了一个新表。。 这是代码: 当我运行时,我的数据库中只有默认的laravel用户(和迁移)表。没有货币。 原因可能是什么? 编辑 迁移一切都很顺利。问题是: SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节(SQL:更改表用户添加唯一users_email_unique(电子邮件)) SQLSTATE[42000]:语法错误
我想在laravel中现有的表中添加一些新列。 我已经在谷歌上搜索过了,在这些搜索之后,我已经使用命令创建了迁移。 将列添加到用户。php 创建之后,我运行这个命令。 但也犯了同样的错误: 基本表或视图已存在:1050个表“用户”已存在(SQL:create table(int unsigned not null自动递增主键,varchar(255)not null,varchar(255)not
我不知道如何使用Laravel框架将新列添加到我现有的数据库表中。 我尝试使用...编辑迁移文件。 在终端中,我执行和。 如何添加新列?
我需要在我的laravel项目中添加一个新列,这没有问题,我使用了进行了更新,一切正常。现在我需要找出这个表上有多少条记录,并用一些值进行更新。 我有表: 因此,我使用新的迁移文件创建了新字段: 现在我需要用一些值更新表中的这个字段,例如,如果表中有100条记录,那么我需要在每一行中插入值“carry-X”,其中X是一个从1到100的数字。例如: 逮捕令-1,逮捕令-2,......逮捕证-100