首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel + PostgreSQL Ltree

Laravel + PostgreSQL Ltree
EN

Stack Overflow用户
提问于 2016-12-20 21:08:21
回答 3查看 782关注 0票数 0

如何编写迁移文件以添加字段类型'ltree‘(PostgreSQL)

代码语言:javascript
复制
Schema::create('table', function (Blueprint $table) {
     ....
$table->ltree('path');
}

不管用。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-20 21:15:55

查看可用函数的手册:https://laravel.com/docs/5.1/migrations#creating-columns

Laravel的目标是兼容性,所以除非在所有受支持的数据库中都有相同的结构,否则它们不太可能在本地支持它。

可以使用DB::statement('CREATE TABLE ...')手动运行SQL语句。

请记住,您的应用程序将锁定到postgres,这可能并不理想。

票数 3
EN

Stack Overflow用户

发布于 2018-10-20 12:29:33

作为快速解决方案,在迁移中使用此方法:

代码语言:javascript
复制
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);
}
票数 1
EN

Stack Overflow用户

发布于 2022-02-04 06:06:34

这里business_category是我的ltree数据类型

代码语言:javascript
复制
public function up()
{
    Schema::create('business_categories', function (Blueprint $table) {
        $table->increments('business_category_id')->generatedAs();
        $table->string('business_category')->nullable();
        $table->timestamps();
        
    });
    
    DB::statement("ALTER TABLE business_categories ADD COLUMN business_category_path ltree");
    DB::statement("CREATE INDEX business_categories_business_category_path_gist_idx ON business_categories USING gist(business_category_path)");
    DB::statement("CREATE INDEX business_categories_business_category_path_idx ON business_categories USING btree(business_category_path)");
}

此外,如果未启用ltree扩展,则必须启用它。

代码语言:javascript
复制
try {
    DB::statement("create extension ltree");
} catch (\Throwable $e) {
    print "ltree extension already exist";
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41251284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档