NAME
Slick::Database
SYNOPSIS
An OO wrapper around DBI and SQL::Abstract.
Currently Slick::Database supports MySQL
and PostgreSQL
. Note, you will need to install the driver that you'd like to use manually, as Slick does not come bundled with any.
See Slick::DatabaseExecutor
for lower level information on how Slick::Database works.
API
dbi
Returns the underlying DBI driver object associated with the database.
execute
Runs some statement against the underlying DBI driver object associated with the database.
select, select_one, update, delete, insert
my $users = $s->database('my_postgres')
->select('users', [ 'id', 'name' ]); # SELECT id, name FROM users;
my $user = $s->database('my_postgres')
->select_one('users', [ 'id', 'name', 'age' ], { id => 1 }); # SELECT id, name, age FROM users WHERE id = 1;
$s->database('my_postgres')
->insert('users', { name => 'Bob', age => 23 }); # INSERT INTO users (name, age) VALUES ('Bob', 23);
$s->database('my_postgres')
->update('users', { name => 'John' }, { id => 2 }); # UPDATE users SET name = 'John' WHERE id = 2;
$s->database('my_postgres')
->delete('users', { id => 2 }); # DELETE FROM users WHERE id = 2;
Wrapper around SQL::Abstract, see SQL::Abstract for more information on how to use these methods.
See "dbi" if you would like to directly use the DBI connection instead of SQL::Abstract.
migrations
$s->database('db')->migrations;
Returns a HashRef
with all of the migrations associated with the database.
migration
$s->database('db')->migration(
'migration_id', # id
'CREATE TABLE foo (id INT PRIMARY KEY);', # up
'DROP TABLE foo;' # down
);
Create a migration and associate it with the database.
migrate_up
$s->database('db')->migrate_up;
Runs all pending migrations against the database.
If you wish to only migrate a single migration, you can provide the id of the migration you'd like to run:
$s->database('db')->migrate_up('migration_id');
migrate_down
$s->database('db')->migrate_down;
Migrates all migrations down effectively destroying your database.
If you wish to only de-migrate a single migration, you can provide the id of the migration you'd like to run:
$s->database('db')->migrate_down('migration_id');
See also
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 284:
Unknown directive: =over2
- Around line 286:
'=item' outside of any '=over'