use strict;
use Switch;
use Env qw(
- HOME PGHOST PGPORT PGUSER PGDATABASE MIGSCHEMA
- MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR
+ HOME MYSQL_HOST MYSQL_TCP_PORT MYSQL_USER MYSQL_DATABASE MYSQL_PW
+ MIGSCHEMA MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR
);
use Pod::Usage;
use DBI;
use FindBin;
my $mig_bin = "$FindBin::Bin/";
use lib "$FindBin::Bin/";
-use EMig;
+use KMig;
pod2usage(-verbose => 2) if ! $ARGV[0] || $ARGV[0] eq '--help';
-EMig::die_if_no_env_migschema();
-EMig::die_if_mig_tracking_table_does_not_exist();
+KMig::die_if_no_env_migschema();
+KMig::die_if_mig_tracking_table_does_not_exist();
my $file = abs_path($ARGV[0]);
if ($file =~ /^$MIGBASEWORKDIR/) {
my $file = abs_path(shift);
my $table = shift;
- if (! EMig::check_db_migschema_for_specific_table($table)) {
+ if ($table !~ /^m_/) {
+ die "for safety, since kmig 'link'ing really just adds columns to the parent table, this action is restricted to tables prefixed with m_";
+ }
+
+ if (! KMig::check_db_migschema_for_specific_table($table)) {
die "table not found in MIGSCHEMA ($MIGSCHEMA): $table\n";
}
- my $tracked_file_id = EMig::check_for_tracked_file($file);
+ my $tracked_file_id = KMig::check_for_tracked_file($file);
if ($tracked_file_id) {
- my $data = EMig::status_this_file($file);
+ my $data = KMig::status_this_file($file);
print "linking file to parent table: $file -> $table\n";
- my $dbh = EMig::db_connect();
+ my $dbh = KMig::db_connect();
my $sth = $dbh->prepare("
SELECT base_filename
- FROM $MIGSCHEMA.tracked_file
+ FROM m_tracked_file
WHERE parent_table = " . $dbh->quote($table) . "
AND base_filename <> " . $dbh->quote($file) . ";"
);
die "table ($table) already linked to a different file: $cols[0]\n";
}
$rv = $dbh->do("
- UPDATE $MIGSCHEMA.tracked_file
+ UPDATE m_tracked_file
SET parent_table = " . $dbh->quote($table) . "
WHERE base_filename = " . $dbh->quote($file) . "
;
- ") || die "Error updating table $MIGSCHEMA.tracked_file: $!\n";
- EMig::db_disconnect($dbh);
+ ") || die "Error updating table m_tracked_file: $!\n";
+ KMig::db_disconnect($dbh);
} else {
print "File not currently tracked: $file\n";
}