X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=mig-bin%2Fmig-env;h=a9f8b35f6d6ff624d8bf293fd2ba4310609aeecb;hp=eddfc2773eff7298126228b230360167884abcfb;hb=417718a7bf0eaa05337dba954c3b40c2ac1ef369;hpb=f9201dc2d1699f5161e5e29690a1634e8063bb85 diff --git a/mig-bin/mig-env b/mig-bin/mig-env index eddfc27..a9f8b35 100755 --- a/mig-bin/mig-env +++ b/mig-bin/mig-env @@ -13,6 +13,8 @@ B B [migration_schema] +B [orig_migration_schema] [new_migration_schema] + B B @@ -81,6 +83,12 @@ This command will show the contents of the corresponding ~/.mig/.env script, or, if no schema is specified, then it will list pertinent variables in the current environment if they exist. +=item B [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 This command will list migration schemas found in ~/.mig @@ -123,6 +131,12 @@ switch($ARGV[0]) { 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) { @@ -227,6 +241,7 @@ sub mig_env_create { 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"; @@ -242,3 +257,12 @@ sub mig_env_create { 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`; +} +