+++ /dev/null
-#!/usr/bin/perl -w
-###############################################################################
-=pod
-
-=head1 NAME
-
-mig-init - This will add or recreate tracking tables for the B<mig> 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<init>
-
-=head1 SYNOPSIS
-
-B<mig-init>
-
-B<mig-init> <help>
-
-=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) )
- }
- }
-}
-