X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=mig-bin%2Fmig-init;fp=mig-bin%2Fmig-init;h=0000000000000000000000000000000000000000;hp=98f92b5329502bd18e9581b4f83555dca074bd15;hb=155eb9eac077ca803f75d1295e584e7012e1b883;hpb=69588457ab8f70fbb77af29cc0653933d24ed2ac diff --git a/mig-bin/mig-init b/mig-bin/mig-init deleted file mode 100755 index 98f92b5..0000000 --- a/mig-bin/mig-init +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/perl -w -############################################################################### -=pod - -=head1 NAME - -mig-init - This will add or recreate tracking tables for the B toolset to -the migration schema specified by the MIGSCHEMA environment variable, in the -PostgreSQL database specified by various PG environment variables. - -In practice, you should invoke 'mig env use schema_name' prior to calling -B - -=head1 SYNOPSIS - -B - -B - -=cut - -############################################################################### - -use strict; -use Switch; -use Env qw( - HOME PGHOST PGPORT PGUSER PGDATABASE MIGSCHEMA - MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR -); -use Pod::Usage; -use DBI; -use FindBin; -my $mig_bin = "$FindBin::Bin/"; -my $mig_sql = $mig_bin . "../mig-sql/init/"; -use lib "$FindBin::Bin/"; -use Mig; - -pod2usage(-verbose => 2) if $ARGV[0]; - -Mig::die_if_no_env_migschema(); - -if (! Mig::check_for_db_migschema()) { - try_to_create_schema(); -} - -if (! Mig::check_db_migschema_for_migration_tables()) { - try_to_init_schema_with_migration_tools(); -} -Mig::die_if_mig_tracking_table_exists(); -Mig::die_if_mig_column_tracking_table_exists(); -loop_through_mig_sql_templates(); - -exit 0; - -############################################################################### - -sub try_to_create_schema { - if ($MIGSCHEMA =~ /[^\w_]/) { - die "$MIGSCHEMA is not suitable for a schema name in PostgreSQL\n"; - } - my $dbh = Mig::db_connect(); - my $rv = $dbh->do("CREATE SCHEMA $MIGSCHEMA;") - || die "Error creating migration schema ($MIGSCHEMA): $!\n"; - print "Created schema $MIGSCHEMA\n"; - Mig::db_disconnect($dbh); -} - -sub try_to_init_schema_with_migration_tools { - Mig::die_if_no_migration_tools(); - print "Calling migration_tools.init() and .build()\n"; - my $dbh = Mig::db_connect(); - my $rv = $dbh->do("SELECT migration_tools.init(" . $dbh->quote($MIGSCHEMA) . ");") - || die "Error running migration_tools.init($MIGSCHEMA): $!\n"; - print "migration_tools.init() finished\n"; - my $rv2 = $dbh->do("SELECT migration_tools.build(" . $dbh->quote($MIGSCHEMA) . ");") - || die "Error running migration_tools.build($MIGSCHEMA): $!\n"; - print "migration_tools.build() finished\n"; - Mig::db_disconnect($dbh); -} - -sub loop_through_mig_sql_templates { - print "Looping through mig-sql/init/ templates\n"; - opendir my $dir, $mig_sql or die "Cannot open directory: $!"; - my @files = sort readdir $dir; - closedir $dir; - foreach my $file (@files) { - if ($file =~ /.sql$/) { - print "executing $file:\n"; - system( $mig_bin . "mig-sql", ('-f',$mig_sql . $file) ) - } - } -} -