在Laravel 4迁移中添加MySQL地理空间Point列

thi*_*sai 2 mysql geospatial laravel laravel-4

  1. 如何在我的Laravel 4迁移中为MySQL数据库添加一个Point列?
  2. 是否可以使用检查mysql并检查postgres语句来设置数据库无关的迁移?如果是这样我怎么能这样做呢?

我试过了:

public function up()
{
    Schema::create('meetings', function(Blueprint $table) {
        $table->increments('id');

        $table->string('title');
        $table->text('description');
        $table->enum('category',[0,1,2,3,4])->index();

        $table->unsignedInteger('owner_id');
        $table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade');

        $table->dateTime('start_date');
        $table->dateTime('end_date');

        $table->timestamps();
    });
    DB::raw("ALTER TABLE meetings ADD COLUMN geolocation POINT"); 
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

Raz*_*zor 6

你应该使用statement方法:

DB::statement("ALTER TABLE meetings ADD COLUMN geolocation POINT");
Run Code Online (Sandbox Code Playgroud)

更新

关于第二个问题,您可以database.php像这样访问文件:

if (Config::get('database')['default'] === 'mysql'){
    // mysql 
}else if (Config::get('database')['default'] === 'pgsql'){
    // PostgreSQL
}
Run Code Online (Sandbox Code Playgroud)