summaryrefslogtreecommitdiff
path: root/perl/Wallet/Admin.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl/Wallet/Admin.pm')
-rw-r--r--perl/Wallet/Admin.pm15
1 files changed, 14 insertions, 1 deletions
diff --git a/perl/Wallet/Admin.pm b/perl/Wallet/Admin.pm
index 511916d..d2e8cb0 100644
--- a/perl/Wallet/Admin.pm
+++ b/perl/Wallet/Admin.pm
@@ -1,7 +1,7 @@
# Wallet::Admin -- Wallet system administrative interface.
#
# Written by Russ Allbery <rra@stanford.edu>
-# Copyright 2008, 2009, 2010, 2011, 2012
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013
# The Board of Trustees of the Leland Stanford Junior University
#
# See LICENSE for licensing terms.
@@ -24,6 +24,12 @@ use Wallet::Schema;
# that it will sort properly.
$VERSION = '0.07';
+# The last non-DBIx::Class version of Wallet::Schema. If a database has no
+# DBIx::Class versioning, we artificially install this version number before
+# starting the upgrade process so that the automated DBIx::Class upgrade will
+# work properly.
+our $BASE_VERSION = '0.07';
+
##############################################################################
# Constructor, destructor, and accessors
##############################################################################
@@ -166,6 +172,13 @@ sub backup {
sub upgrade {
my ($self) = @_;
+ # Check to see if the database is versioned. If not, install the
+ # versioning table and default version.
+ if (!$self->{dbh}->get_db_version) {
+ $self->{dbh}->install ($BASE_VERSION);
+ }
+
+ # Perform the actual upgrade.
if ($self->{dbh}->get_db_version) {
eval { $self->{dbh}->upgrade; };
}