=head1 NAME
mig - git-like program for tracking and manipulating legacy data files for
-migrations
+migrations. This variant of <mig> and is geared toward the Koha ILS and
+MySql/MariaDB.
=head1 SYNOPSIS
B<mig> is used to track and manipulate CSV or CSV-like text files exported from
legacy systems for migration into Evergreen. It can be a wrapper for some
-other migration tools and tracks state using a PostgreSQL table in a given
-migration schema.
-
-It makes use of certain environment variables that may be set by the B<mig-env>
-tool: PGHOST, PGPORT, PGUSER, PGDATABASE, MIGSCHEMA, and MIGWORKDIR
+other migration tools and tracks state using a MySQL table for a given
+database.
For most commands, if the current working directory falls outside of the
directory specified by MIGWORKDIR, then mig will assume that environment is
also incorrect and bail before doing any actual work.
-~/.pgpass should also be configured, as B<mig> will not prompt for a database
-password.
-
-Only the B<env> and B<help> commands work without the MIGSCHEMA environment
+Only the B<env> and B<help> commands work without the MIGDATABASE environment
variable being set.
=head1 OVERVIEW
=item mig env use m_foo # Spawns a shell using the configured environment
-=item mig init # creates the m_foo schema in the database if needed, and other tables
+=item mig init # creates any needed auxilary tables
=item mig add patrons.tsv # tracks an incoming data file; repeat for additional files
=item mig clean patrons.tsv # cleans the file, creating patrons.tsv.utf8.clean
-=item mig link patrons.tsv actor_usr # makes the soon-to-be staging table a child of m_foo.actor_usr
+=item mig link patrons.tsv borrowers # models the soon-to-be staging table after table 'borrowers'
=item mig convert patrons.tsv # creates a .sql file for staging the data
+=item mig export foo # exports koha setup elements for importing elsewhere
+
=item mig stage patrons.tsv # load said .sql file
=item mig mapper patrons.tsv # interactive tool for analyzing/mapping the staging table
=item B<init>
Create or re-create the PostgreSQL tracking table for the schema specified by
-the MIGSCHEMA environment variable. If needed, create the migration schema
+the MIGDATABASE environment variable. If needed, create the migration schema
itself and run migration_tools.init() and build() if the migration_tools schema
exists.
=over 5
-csv2sql --config scripts/clean.conf --add-x-migrate --schema <MIGSCHEMA> [--parent <PARENT TABLE>] -o <[<file>.utf8.clean.stage.sql]|[parent_table_stage.sql]> <FILE>.utf8.clean
+csv2sql --config scripts/clean.conf --add-x-migrate --schema <MIGDATABASE> [--parent <PARENT TABLE>] -o <[<file>.utf8.clean.stage.sql]|[parent_table_stage.sql]> <FILE>.utf8.clean
=back
=item B<analysis> [file]
-Writes a MIGSCHEMA.tsv file containing a break-down of mapped and flagged
+Writes a MIGDATABASE.tsv file containing a break-down of mapped and flagged
fields from the specified file, or all staged files if no file is specified.
The main goal of the tsv file is to present end-user mappable data for circ
--added_page_title and --added_page_file
If one is used both must be. The added page file can be plain text or asciidoc. This
-adds an extra arbitrary page of notes to the report. Mig assumes the page file is in the mig git directory.
+adds an extra arbitrary page of notes to the report. KMig assumes the page file is in the mig git directory.
--tags
use strict;
use Switch;
use Env qw(
- HOME PGHOST PGPORT PGUSER PGDATABASE MIGSCHEMA
+ HOME PGHOST PGPORT PGUSER PGDATABASE MIGDATABASE
MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR
);
use Pod::Usage;
use FindBin;
-my $mig_bin = "$FindBin::Bin/mig-bin/";
-use lib "$FindBin::Bin/mig-bin";
-use Mig;
+my $mig_bin = "$FindBin::Bin/kmig.d/bin/";
+use lib "$FindBin::Bin/kmig.d/bin";
+use KMig;
pod2usage(-verbose => 2) if ! $ARGV[0];
switch($ARGV[0]) {
sub standard_invocation {
my $cmd = shift;
- if ($cmd ne 'env') { Mig::die_if_no_env_migschema(); }
+ if ($cmd ne 'env') { KMig::die_if_no_env_migschema(); }
if (-e $mig_bin . "mig-$cmd") {
system( $mig_bin . "mig-$cmd", @_ );
} else {
system( "mig-$cmd", @_ ) == 0 or die pod2usage(1);
}
-
}