X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=mig-bin%2Fmig-env;h=ed066b120e61120beb10588b4ef488b5d45f8cd0;hp=bcfe1485de022b831725d18ec6259c5a786f9aa2;hb=32f8a87408763d0ace21af526d68ffb02559a33d;hpb=2da015ea87a2a2a922729cb5ed83d529c4a36aa0 diff --git a/mig-bin/mig-env b/mig-bin/mig-env index bcfe148..ed066b1 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) { @@ -243,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`; +} +