如何编写迁移文件以添加字段类型'ltree'(PostgreSQL)
Schema::create('table', function (Blueprint $table) {
....
$table->ltree('path');
}
不起作用。
谢谢!
答案 0 :(得分:1)
查看可用功能的手册: https://laravel.com/docs/5.1/migrations#creating-columns
Laravel的目标是兼容性,因此除非所有受支持的数据库中都有相同的结构,否则它们本身不太可能支持它。
您可以使用DB::statement('CREATE TABLE ...')
请记住,您的应用程序将被锁定到可能不理想的postgres。
答案 1 :(得分:1)
作为快速解决方案,在您的迁移中使用此方法:
public function up ()
{
Schema::create('locations', function (Blueprint $table) {
$table->increments('id');
$table->uuid('uuid')->unique();
$table->string('path', 255); // <--- my ltree field
$table->timestamps();
});
$query = 'ALTER TABLE locations ALTER COLUMN path TYPE "ltree" USING "path"::"ltree";';
\Illuminate\Support\Facades\DB::connection()->getPdo()->exec($query);
}