获取错误 [Doctrine\DBAL\DBALException] Unknown database type point requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it

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

我正在使用 Laravel,我刚刚添加了一个新的迁移来增加列的大小。 第一个生成的表有一个名为

latlong
的列,类型为
Point
。 我不能修改任何列大小?

当我尝试修改列的大小时,出现以下错误:

[学说\DBAL\DBALException]
请求的未知数据库类型点, Doctrine\DBAL\Platforms\MySQL57Platform 可能不支持它。

这是我的迁移文件。第一次迁移是为了创建一个表

abc

public function up()
{
 Schema::create('abc', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name', 20);
        $table->string('last_name', 20);
        $table->string('street', 100);
        $table->string('city', 50)->nullable();
        $table->string('state', 50)->nullable();
        $table->string('postal_code', 15);
        $table->string('mobile', 10)->nullable();
        $table->timestamps();
        $table->softDeletes();
});   
Illuminate\Support\Facades\DB::statement('ALTER TABLE abc ADD latlong POINT');

}

第二次迁移用于更新列大小

public function up()
{
 Schema::table('abc', function (Blueprint $table){
     $table->string('mobile', 20)->nullable()->change();
 });
}

有人可以帮我吗?

php laravel laravel-5 doctrine-orm doctrine
2个回答
9
投票

在您的迁移中,添加以下功能:

public function __construct()
{
    \Illuminate\Support\Facades\DB::getDoctrineSchemaManager()
       ->getDatabasePlatform()->registerDoctrineTypeMapping('point', 'string');
}

-4
投票

请尝试在下面添加

vendor\infyomlabs\laravel-generator\src\Utils\TableFieldsGenerator.php

$platform = $this->schemaManager->getDatabasePlatform();
$platform->registerDoctrineTypeMapping('bit', 'boolean');

// 添加新行 $platform->registerDoctrineTypeMapping('point', '字符串');

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