Create a yaml file. You may wish to have one model have the connection information, then you can create other models within that yaml file which use that model for their connection. An example is below. # mydb.yml MyDB: connect: Pg:dbname=some_db user: foo_user pass: foo_pass Client: model: MyDB table: clients primary_key: id Customer: model: MyDB table: customers primary_key: id related: clients <-> customers(client_id) This allows us to do stuff like # test.pl use DBIx::Lite::Model; my $dbix = DBIx::Lite::Model->new; # Creates a new instance $dbix->config('mydb.yml'); # load the configuration my $customer_rs = $dbix->model('Customer'); # Returns the Customer ResultSet my $client_rs = $dbix->model('Client'); # Returns the Client ResultSet # we want to find out what customers client with id 5 has my $customers = $client_rs->find(5)->customers; $customers->single->name; # returns the name of the clients first customer
DBIx::Lite is fantastic when you don't need the great features DBIx::Class offers. One thing I didn't want to do was continually enter the connection string, so DBIx::Lite::Model was born. You can store your connection string in a YAML file and create "ResultSet's" on from that model, so you only write the connection information once. Because your models are stored in a YAML file they can easily be reused in other code too.