миграция таблицы laravel в mysql и postgresql со столбцом геометрии - PullRequest
0 голосов
/ 16 июня 2019

У меня есть небольшое приложение Laravel, которое просто добавляет информацию о геометрии в базу данных. Я должен добавить данные в MySQL и PostgreSQL. Я уже выполнил часть MySQL, используя этот пакет . Сейчас я пытаюсь также перенести свою таблицу на PostgreSQL, но поскольку я использовал пакет, созданный специально для MySQL, я застрял в том, как мне следует управлять миграцией для обеих баз данных. Для PostgreSQL я нашел этот пакет, который может помочь мне добавить данные геометрии

Это мой класс миграции:

class CreateSpatialobjectTable extends Migration
{

    public function up()
    {
        Schema::create('spatial_objects', function (Blueprint $table) {
            $table->engine = "InnoDB";
            $table->increments('id');
            $table->string('name');
            $table->string('description');
            $table->geometry('geometry');
        });
    }
    public function down()
    {
        Schema::dropIfExists('spatial_objects');
    }
}

Я не помню правильно, но метод geometry не работает с MySQL, если я не добавлю первый пакет в свое приложение Laravel.

А это моя модель:

use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;

class SpatialObject extends Model
{
    use SpatialTrait;
    public $tablename = "spatial_objects";
    public $timestamps = false;

    /**
     * The attributes that are spatial fields.
     *
     * @var array
     */
    protected $spatialFields = [
        'geometry'
    ];
}

Обратите внимание, что SpatialTrait предоставляется первым пакетом (для MySQL).

Конфигурация для обеих баз данных работает, я могу перейти на обе, но я застрял в геометрической части.

TL; DR: как перенести таблицу, содержащую столбец геометрии, в MySQL и PostgreSQL.

...