我正在使用 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();
});
}
有人可以帮我吗?
在您的迁移中,添加以下功能:
public function __construct()
{
\Illuminate\Support\Facades\DB::getDoctrineSchemaManager()
->getDatabasePlatform()->registerDoctrineTypeMapping('point', 'string');
}
请尝试在下面添加
vendor\infyomlabs\laravel-generator\src\Utils\TableFieldsGenerator.php
$platform = $this->schemaManager->getDatabasePlatform();
$platform->registerDoctrineTypeMapping('bit', 'boolean');
// 添加新行 $platform->registerDoctrineTypeMapping('point', '字符串');