B<mig-env> <show> [migration_schema]
+B<mig-env> <clone> [orig_migration_schema] [new_migration_schema]
+
B<mig-env> <list>
B<mig-env> <help>
script, or, if no schema is specified, then it will list pertinent variables in
the current environment if they exist.
+=item B<clone> [orig schema] [new schema]
+
+This command will create a "shallow" clone of the orig schema, in that it will
+share database credentials as well as git and data directories, but will have a
+separate schema name.
+
=item B<list>
This command will list migration schemas found in ~/.mig
pod2usage(-verbose => 1) if ! $ARGV[1];
mig_env_create();
}
+ case "clone" {
+ pod2usage(-verbose => 1) if ! $ARGV[2];
+ $migration_schema = $ARGV[2] || '';
+ $filename = "$HOME/.mig/$migration_schema.env";
+ mig_env_clone();
+ }
case "use" {
pod2usage(-verbose => 1) if ! $ARGV[1];
if (-e $filename) {
print FILE "export PGPORT=$PGPORT\n";
print FILE "export PGDATABASE=$PGDATABASE\n";
print FILE "export PGUSER=$PGUSER\n";
+ print FILE "export PGOPTIONS='-c search_path=$migration_schema,public,evergreen'\n";
print FILE "export MIGENVPROMPT=$migration_schema\n";
print FILE "export MIGSCHEMA=$migration_schema\n";
print FILE "export MIGBASEWORKDIR=$MIGBASEWORKDIR\n";
close FILE;
}
+sub mig_env_clone {
+ my $orig_migration_schema = $ARGV[1] || '';
+ my $orig_filename = "$HOME/.mig/$orig_migration_schema.env";
+ `cp $orig_filename $filename`;
+ `sed -i 's/export PGOPTIONS=.*/export PGOPTIONS='"'"'-c search_path=$migration_schema,public,evergreen'"'"'/' $filename`;
+ `sed -i 's/export MIGENVPROMPT=.*/export MIGENVPROMPT=$migration_schema/' $filename`;
+ `sed -i 's/export MIGSCHEMA=.*/export MIGSCHEMA=$migration_schema/' $filename`;
+}
+