Skip to content

openupresources/pg_ltree

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PgLtree

Gem that allows use ltree in ActiveRecord models.

It uses a implementation based around PostgreSQL's ltree data type, associated functions and operators.

Author Andrei Panamarenka
Version 1.1.7 (March 20, 2018)
License Released under the MIT license.

Gem Version Build Status Code Climate RubyDoc

Support

  • Ruby 2.*
  • Rails >= 4, < 5.3
  • Pg adapter (gem 'pg') >= 0.17, < 2

Installation

Add this line to your application's Gemfile:

gem 'pg_ltree', '1.1.7'

And then execute:

$ bundle

Add ltree extension to PostgreSQL:

class AddLtreeExtension < ActiveRecord::Migration
  def change
    enable_extension 'ltree'
  end
end

Update your model:

class AnyModel < ActiveRecord::Migration
  def change
    add_column :any_model, :path, :ltree

    add_index :any_model, :path, using: :gist
  end
end

Run migrations:

$ bundle exec rake db:migrate

Usage

  class AnyModel < ActiveRecord::Base
    ltree :path
    # ltree :path, cascade: false # Disable cascade update and delete
  end

  root     = AnyModel.create!(path: 'Top')
  child    = AnyModel.create!(path: 'Top.Science')
  subchild = AnyModel.create!(path: 'Top.Science.Astronomy')

  root.parent   # => nil
  child.parent # => root
  root.children # => [child]
  root.children.first.children.first # => subchild
  subchild.root # => root

For find a lots of additional information about PgLtee see:

About

Rails gem for PostgreSQL lTree (pg_ltree)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%