我正在使用laravel
,我刚刚添加了一个新的迁移来增加列大小。
第一个生成的表有一个名为latlong
的{{1}}类型的列。
我无法修改任何列大小?
当我尝试这样做时,会给出以下错误。有人可以帮我这个吗?
[学说\ DBAL \ DBALException]
请求未知的数据库类型点, Doctrine \ DBAL \ Platforms \ MySQL57Platform可能不支持它。
这是我的迁移文件。
首次迁移是为了创建表Point
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');
}
答案 0 :(得分:0)
请尝试在vendor\infyomlabs\laravel-generator\src\Utils\TableFieldsGenerator.php
$platform = $this->schemaManager->getDatabasePlatform();
$platform->registerDoctrineTypeMapping('bit', 'boolean');
///添加新行$ platform-> registerDoctrineTypeMapping('point', 'string');
答案 1 :(得分:0)
解决方案类似于@AnhDam建议。但是,您永远不要更改作曲家供应商目录中的文件。在Insead的迁移中,添加以下功能:
public function __construct()
{
\Illuminate\Support\Facades\DB::getDoctrineSchemaManager()
->getDatabasePlatform()->registerDoctrineTypeMapping('point', 'string');
}
答案 2 :(得分:-1)
修改列 先决条件强>
在修改列之前,请务必添加doctrine / dbal依赖项 到您的composer.json文件。 Doctrine DBAL库用于 确定列的当前状态并创建SQL查询 需要对列进行指定的调整:
composer require doctrine/dbal
来自Laravel Doc
您需要先安装doctrine/dbal
更新
像这样使用来修改列
Schema::table('table_name', function ($table) {
$table->string('mobile', 20)->change();
}