NAME
GitDDL::Migrator - database migration utility for git managed SQL extended GitDDL
SYNOPSIS
use GitDDL::Migrator;
my $gd = GitDDL::Migrator->new(
work_tree => '/path/to/project', # git working directory
ddl_file => 'sql/schema_ddl.sql',
dsn => ['dbi:mysql:my_project', 'root', ''],
);
DESCRIPTION
GitDDL::Migrator is database migration utility extended GitDDL.
GitDDL is very cool module. It's very simple and developer friendly. I use it in development, but features of it are not enough in operation phase.
Features needed at operation phases are: e.g.
- save migration history
- rollback to previous version
- specify version
- specify SQL (sometimes SQL::Translator's output is wrong)
- check differences from versioned SQL and real database
Then for solving them, I wrote GitDDL::Migrator.
METHODS
GitDDL::Migrator->new(%options)
Create GitDDL::Migrator object. Available options are:
work_tree
=> 'Str' (Required)-
Git working tree path includes target DDL file.
ddl_file
=> 'Str' (Required)-
DDL file ( .sql file) path in repository.
If DDL file located at /repos/project/sql/schema.sql and work_tree root is /repos/project, then this option should be sql/schema.sql
dsn
=> 'ArrayRef' (Required)-
DSN parameter that pass to DBI module.
version_table
=> 'Str' (optional)-
database table name that contains its git commit version. (default: git_ddl_version)
ignore_tables
=> 'ArrayRef' (optional)-
tables for ignoring when calling
check_ddl_mismatch()
. (default: empty)
$gd->migrate(%opt)
migrate database
$gd->real_diff
display differences from versioned DDL and real database setting.
$gd->diff_to_real_database
alias of real_diff
$gd->diff_from_real_database
display differences from real database setting and versioned DDL.
$gd->check_ddl_mismatch
check differences from versioned DDL and real database setting.
$gd->get_rollback_version
get previous database version.
$gd->rollback_diff
display differences SQL from current version and previous version.
$gd->create_version_table
Only create version table, don't deploy any other SQLs. It is useful to apply GitDDL::Migrator
to existing databases.
LICENSE
Copyright (C) Masayuki Matsuki.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Masayuki Matsuki <y.songmu@gmail.com>