From 007f40ddec0d0c594f82716dd64cf5b676bc1ceb Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Wed, 29 Aug 2007 22:56:52 +0000 Subject: Add an initialize function to Wallet::Server to set up the database. --- perl/Wallet/Server.pm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/perl/Wallet/Server.pm b/perl/Wallet/Server.pm index 902e86d..28be35c 100644 --- a/perl/Wallet/Server.pm +++ b/perl/Wallet/Server.pm @@ -72,6 +72,22 @@ sub new { return $self; } +# Initializes the database by populating it with our schema. This will fail +# if the database is already created and an administrator will have to drop +# the tables by hand. Returns true on success and false on failure. On +# failure, sets the internal error message. +sub initialize { + my ($self) = @_; + my $schema = Wallet::Schema->new; + eval { $schema->create ($self->{dbh}) }; + if ($@) { + $self->{error} = $@; + return undef; + } else { + return 1; + } +} + # Returns the error from the previous failed operation. sub error { my ($self) = @_; -- cgit v1.2.3