The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DBIx::Migration - Seamless DB schema up- and downgrades

SYNOPSIS

# migrate.pl
my $m = DBIx::Migration->new(
    {
        dsn => 'dbi:SQLite:/Users/sri/myapp/db/sqlite/myapp.db',
        dir => '/Users/sri/myapp/db/sqlite'
    }
);

my $version = $m->version;   # Get current version from database
$m->migrate(2);              # Migrate database to version 2

# /Users/sri/myapp/db/sqlite/schema_1_up.sql
CREATE TABLE foo (
    id INTEGER PRIMARY KEY,
    bar TEXT
);

# /Users/sri/myapp/db/sqlite/schema_1_down.sql
DROP TABLE foo;

# /Users/sri/myapp/db/sqlite/schema_2_up.sql
CREATE TABLE bar (
    id INTEGER PRIMARY KEY,
    baz TEXT
);

# /Users/sri/myapp/db/sqlite/schema_2_down.sql
DROP TABLE bar;

DESCRIPTION

Seamless DB schema up- and downgrades.

METHODS

$self->debug($debug)

Enable/Disable debug messages.

$self->dir($dir)

Get/Set directory.

$self->dsn($dsn)

Get/Set dsn.

$self->migrate($version)

Migrate database to version.

$self->password

Get/Set database password.

$self->username($username)

Get/Set database username.

$self->version

Get migration version from database.

AUTHOR

Sebastian Riedel, sri@oook.de

COPYRIGHT

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.