upgrade db incrementally
This commit is contained in:
@@ -63,12 +63,23 @@ try {
|
|||||||
$dbh->selectrow_arrayref("SELECT * FROM device WHERE 0 = 1");
|
$dbh->selectrow_arrayref("SELECT * FROM device WHERE 0 = 1");
|
||||||
});
|
});
|
||||||
|
|
||||||
$schema->_set_db_version(2)
|
$schema->_set_db_version({version => 2})
|
||||||
if $schema->get_db_version == 1;
|
if $schema->get_db_version == 1;
|
||||||
$schema->storage->disconnect;
|
$schema->storage->disconnect;
|
||||||
};
|
};
|
||||||
|
|
||||||
# upgrade from whatever dbix_class_schema_versions says, to $VERSION
|
# upgrade from whatever dbix_class_schema_versions says, to $VERSION
|
||||||
$schema->txn_do(sub { $schema->upgrade });
|
my $db_version = $schema->get_db_version;
|
||||||
|
my $target_version = $schema->schema_version;
|
||||||
|
|
||||||
|
# one step at a time, in case user has applied local changes already
|
||||||
|
for (my $i = $db_version; $i < $target_version; $i++) {
|
||||||
|
try {
|
||||||
|
$schema->upgrade_single_step($i, $i + 1);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
$schema->_set_db_version({version => $i + 1});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
exit 0;
|
exit 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user