logo
Free, Micro AI Code Reviews That Run on Git Commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt

DBIx::Class::KiokuDB - Refer to KiokuDB objects from DBIx::Class tables.

Author

       Yuval Kogman <nothingmuch@woobling.org>

Class Methods

       kiokudb_column $rel
           Declares a relationship to any KiokuDB object.

           In future versions adding relationships to different sub-collections will be possible as well.

Description

       This DBIx::Class component provides the code necessary for DBIx::Class::Row objects to refer to KiokuDB
       objects stored in KiokuDB::Backend::DBI.

Methods

       store
           A  convenience  method  that  calls  "store"  in  KiokuDB on all referenced KiokuDB objects, and then
           invokes "insert_or_update" on $self.

       get_kiokudb_column $col
       set_kiokudb_column $col, $obj
       store_kiokudb_column $col, $obj
           See DBIx::Class::Row.

Name

       DBIx::Class::KiokuDB - Refer to KiokuDB objects from DBIx::Class tables.

Overridden Methods

       new Recognizes objects passed in as column values, much like standard relationships do.

       insert
           Also calls "insert" in KiokuDB on all referenced objects that are not in the KiokuDB storage.

       update
           Adds a check to ensure that all referenced KiokuDB objects are in storage.

Synopsis

       See DBIx::Class::Schema::KiokuDB.

           package MyApp::DB::Result::Album;
           use base qw(DBIx::Class);

           __PACKAGE__>load_components(qw(Core KiokuDB));

           __PACKAGE__->table('album');

           __PACKAGE__->add_columns(
               id => { data_type => "integer" },
               title => { data_type => "varchar" },

               # the foreign key for the KiokuDB object:
               metadata => { data_type => "varchar" },
           );

           __PACKAGE__->set_primary_key('id');

           # enable a KiokuDB rel on the column:
           __PACKAGE__->kiokudb_column('metadata');

Version

       version 1.23

See Also