App-migrate
view release on metacpan or search on metacpan
# To upgrade from 0.1.0 to 0.2.0 we need to drop old database. This
# change can't be undone, so only way to downgrade from 0.2.0 is to
# restore 0.1.0 from backup.
upgrade rm useless.db
RESTORE
VERSION 0.2.0
# To upgrade from 0.2.0 to 1.0.0 we need to run several commands,
# and after downgrading we need to kill some background service.
before_upgrade
patch <0.2.0.patch >/dev/null
chmod +x some_daemon
downgrade
patch -R <0.2.0.patch >/dev/null
upgrade
./some_daemon &
after_downgrade
killall -9 some_daemon
VERSION 1.0.0
# Let's define some lazy helpers:
DEFINE2 only_upgrade
lib/App/migrate.pm view on Meta::CPAN
local $ENV{MIGRATE_PREV_VERSION} = $step->{prev_version};
local $ENV{MIGRATE_NEXT_VERSION} = $step->{next_version};
eval {
if ($step->{type} eq 'BACKUP' or $step->{type} eq 'RESTORE' or $step->{type} eq 'VERSION') {
$self->{on}{ $step->{type} }->($step);
}
else {
my $cmd = $step->{cmd};
if ($cmd =~ /\A#!/ms) {
$cmd = _data2arg($cmd);
chmod 0700, $cmd or croak "chmod($cmd): $!"; ## no critic (ProhibitMagicNumbers)
}
system($cmd, @{ $step->{args} }) == 0 or die "'$step->{type}' failed: $cmd @{ $step->{args} }\n";
print "\n";
}
1;
}
or do {
die $@ if $is_fatal;
warn $@;
$self->{on}{error}->($step);
lib/App/migrate.pm view on Meta::CPAN
# To upgrade from 0.1.0 to 0.2.0 we need to drop old database. This
# change can't be undone, so only way to downgrade from 0.2.0 is to
# restore 0.1.0 from backup.
upgrade rm useless.db
RESTORE
VERSION 0.2.0
# To upgrade from 0.2.0 to 1.0.0 we need to run several commands,
# and after downgrading we need to kill some background service.
before_upgrade
patch <0.2.0.patch >/dev/null
chmod +x some_daemon
downgrade
patch -R <0.2.0.patch >/dev/null
upgrade
./some_daemon &
after_downgrade
killall -9 some_daemon
VERSION 1.0.0
# Let's define some lazy helpers:
DEFINE2 only_upgrade
t/example.t view on Meta::CPAN
# change can't be undone, so only way to downgrade from 0.2.0 is to
# restore 0.1.0 from backup.
upgrade rm useless.db
RESTORE
VERSION 0.2.0
# To upgrade from 0.2.0 to 1.0.0 we need to run several commands,
# and after downgrading we need to kill some background service.
before_upgrade
patch -E <0.2.0.patch >/dev/null
rm -f *.orig
chmod +x some_daemon
downgrade
patch -E -R <0.2.0.patch >/dev/null
rm -f *.orig
upgrade
./some_daemon &
after_downgrade
pkill -9 -x -f '/bin/sh ./some_daemon'
VERSION 1.0.0
# Let's define some lazy helpers:
( run in 0.339 second using v1.01-cache-2.11-cpan-496ff517765 )