Advertisement
fremnet

Untitled

Mar 27th, 2013
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.18 KB | None | 0 0
  1. package App::Backend::DB::Version;
  2.  
  3. use Mojo::Base -base;
  4.  
  5. my @upgrade_queries = (
  6.     [
  7.         "ALTER TABLE winner ADD COLUMN winner_unpaid TIMESTAMP"
  8.     ]
  9. );
  10.  
  11. has 'app';
  12. has needed => sub {scalar @upgrade_queries};
  13. has current => sub {shift->_quick_lookup('PRAGMA user_version')->[0]->[0]};
  14.  
  15. sub _quick_lookup {
  16.     my ($self, $query, @values) = @_;
  17.     App::Backend::DB->new_or_cached(domain => $self->app->mode)->dbh->selectall_arrayref($query, {}, @values);
  18. }
  19.  
  20. sub upgrade {
  21.     my $self = shift;
  22.  
  23.     my ($current, $needed) = ($self->current, $self->needed);
  24.  
  25.     $self->app->log->debug("Current database verion: $current, needed database version: $needed");
  26.     if ($needed > $current) {
  27.         $self->app->log->info("Upgrading Sqlite database from $current to version $needed");
  28.         my $dbh = App::Backend::DB->new_or_cached(domain => $self->app->mode)->dbh;
  29.         foreach my $version_queries (@upgrade_queries[$current .. $needed - 1]) {
  30.             foreach my $query (@$version_queries) {
  31.                 $self->app->log->debug("Executing: $query");
  32.                 $dbh->do($query);
  33.             }
  34.         }
  35.         $self->app->log->debug("Updating user_version pragma");
  36.         $dbh->do("PRAGMA user_version = " . $self->needed);
  37.     }
  38. }
  39.  
  40. "This string is false"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement