logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

DBIx::DataSource::Driver - Driver Writer's Guide and base class

Author

Bugs

Description

       To implement a driver for your database:

       1) If you can create a database with an SQL command through DBI/DBD, simply
          provide a parse_dsn class method which returns a list consisting of the
          *actual* data source to use in DBI->connect and the SQL.

              package DBIx::DataSource::NewDatabase;
              use DBIx::DataSource::Driver;
              @ISA = qw( DBIx::DataSource::Driver );

              sub parse_dsn {
                my( $class, $action, $dsn ) = @_;

                # $action is `create' or `drop'
                # for example, if you parse parse $dsn for $database,
                # $sql = "$action $database";

                # you can die on errors - it'll be caught

                ( $new_dsn, $sql );
              }

       2) Otherwise, you'll need to write create_database and drop_database
          class methods.

              package DBIx::DataSource::NewDatabase;

              sub create_database {
                my( $class, $dsn, $user, $pass ) = @_;

                # for success, return true
                # for failure, die (it'll be caught)
              }

              sub drop_database {
                my( $class, $dsn, $user, $pass ) = @_;

                # for success, return true
                # for failure, die (it'll be caught)
              }

Name

       DBIx::DataSource::Driver - Driver Writer's Guide and base class

See Also

       DBIx::DataSource, DBIx::DataSource::mysql, DBIx::DataSource::Pg, DBI

perl v5.34.0                                       2022-06-13                            DataSource::Driver(3pm)

Synopsis

         perldoc DBIx::DataSource::Driver;

         or

         package DBIx::DataSource::FooBase;
         use DBIx::DataSource::Driver;
         @ISA = qw( DBIx::DataSource::Driver );

See Also