mkdir app
cd app
+ mkdir db
+ cd db
This example uses SQLite which is a dependency of DBIx::Class, so you
shouldn't have to install extra software.
-Save the following into a example.sql
+Save the following into a example.sql in the directory db
CREATE TABLE artist (
artistid INTEGER PRIMARY KEY,
=head3 Set up DBIx::Class::Schema
-First, create some dirs and change working directory:
+Change directory back from db to the directory app:
+
+ cd ../
+
+Now create some more directories:
mkdir MyDatabase
mkdir MyDatabase/Main
use MyDatabase::Main;
use strict;
- my $schema = MyDatabase::Main->connect('dbi:SQLite:example.db');
+ my $schema = MyDatabase::Main->connect('dbi:SQLite:db/example.db');
# here's some of the sql that is going to be generated by the schema
# INSERT INTO artist VALUES (NULL,'Michael Jackson');
use MyDatabase::Main;
use strict;
- my $schema = MyDatabase::Main->connect('dbi:SQLite:example.db');
+ my $schema = MyDatabase::Main->connect('dbi:SQLite:db/example.db');
# for other DSNs, e.g. MySql, see the perldoc for the relevant dbd
# driver, e.g perldoc L<DBD::mysql>.
=head1 Notes
+A reference implentation of the database and scripts in this example
+are available in the main distribution for DBIx::Class under the
+directory t/examples/Schema
+
With these scripts we're relying on @INC looking in the current
working directory. You may want to add the MyDatabase namespaces to
@INC in a different way when it comes to deployment.