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

Php artisan迁移失败Laravel[重复]

仲孙夕
2023-03-14

我有以下错误。有人在理解为什么?

PHP工匠迁移

 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key 
was too long; max key length is 767 bytes (SQL: alter table `users` 
add unique `users_email_unique`(`email`))

创建_users_table.php

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name',255);
    $table->string('email',255)->unique();
    $table->string('password',255);
    $table->rememberToken();
    $table->timestamps();
});

共有3个答案

薛高澹
2023-03-14

编辑AppServiceProvider.php文件,您将在应用/提供商/AppServiceProvider.php中找到此文件

use Illuminate\Support\Facades\Schema;

public function boot()
{
     Schema::defaultStringLength(191);
}

然后跑

composer update

在你的终端上。然后尝试迁移脚本,它将解决您的问题。

芮意
2023-03-14

谢谢你的留言

用下一个代码解析:

 in config/database.php in mysql section


'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
 and replace them with with

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
向泽语
2023-03-14

你要做的是编辑你的AppServiceProvider.php上的App\Providers\AppServiceProvider文件,并在引导方法内设置一个默认的字符串长度:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

然后手动删除数据库,然后composer dump autoloadphp artisan migrate

 类似资料:
  • 我刚刚在配置和充分理解flyway的过程中遇到了这样的情况: 我已成功配置新项目以使用Flyway。 我已成功将测试数据库从版本0迁移到1.0.3。 无法执行到版本1.0.4的迁移。(我试图添加已经存在的列,到目前为止没有问题,是我的错。) 但是,一旦我对相应的脚本进行了必要的更改以使其工作,flyway就会不断显示这样的消息: 由于我不想恢复一个完整的转储并再次应用每一次迁移,只是为了使alte

  • 我使用laravel 5.2版本和PHP 7.1。我试图从我的laravel项目中迁移文件,其中我有代码来检查列的存在,如下所示- 我知道代码非常好,在设置相同的代码时,这已经运行了好几次。但现在我在另一台机器上尝试,失败了,出现了一个错误- [ErrorException] 未定义的属性:stdClass::$column\u name 如果我从代码中删除hasColumn检查,我可以消除这个错

  • 我有大约30个迁移文件。 当它到达包含重命名列的迁移时: 它只会在迁移时出错(比如说,第15个)。它可以正常运行所有其他迁移。如果我对此进行评论,那么它将按预期完成。 我运行或 我得到以下错误: PHP-v给了我这个: MySQL-v给了我这个: 我使用的是“条令/dbal”:“~2.3” 此错误仅在本地计算机上运行迁移时发生。在我的docker-compose堆栈和Vagant框中按预期完成。所

  • 我正在运行一个Spring boot 2.4.3应用程序,我有一个支持事务的mongob 4集群(我使用run-rs在本地运行它)。我也在使用Spring data mongob。我正在尝试为db迁移集成mongock(最新版本-4.3.8),但我面临一个问题,我无法解决。正如我们所知,最新版本的mongock默认使用事务。我有以下更改集,它只是为我的一个实体创建了一个mongob集合。 运行应用

  • 我想在aws beanstalk中部署geodjango。 我已经尝试过这个解决方案。它以前工作过。 但现在它显示了这个错误。 以下是完整的错误日志

  • 问题内容: 如何回滚失败的Rails迁移?我希望这会撤消失败的迁移,但是不,它会回滚以前的迁移(失败的迁移减去一个)。而且也不起作用。我已经遇到过几次了,这非常令人沮丧。这是我做的一个简单测试,可以重复该问题: 结果: 好的,让我们回滚一下: 嗯?那是我在SimpleTest之前的最后一次迁移,而不是失败的迁移。(哦,如果迁移输出中包含版本号,那就太好了。) 因此,让我们尝试为失败的迁移Simpl