mirror of https://github.com/dani/vroom.git
parent
eff9565144
commit
2b861dba96
2 changed files with 64 additions and 1 deletions
@ -0,0 +1,60 @@ |
||||
#!/usr/bin/env perl |
||||
|
||||
use warnings; |
||||
use strict; |
||||
|
||||
use File::Basename; |
||||
use lib dirname($0) . '/../lib'; |
||||
use DBI; |
||||
use Config::Simple; |
||||
use Vroom::Constants; |
||||
use utf8; |
||||
|
||||
|
||||
# Load and parse global config file |
||||
my $cfg = new Config::Simple(); |
||||
$cfg->read(dirname($0) . '/../conf/settings.ini'); |
||||
my $config = $cfg->vars(); |
||||
|
||||
# Open a handle to the database server |
||||
my $dbh = DBI->connect( |
||||
$config->{'database.dsn'}, |
||||
$config->{'database.user'}, |
||||
$config->{'database.password'}, |
||||
{ |
||||
mysql_enable_utf8 => 1, |
||||
PrintError => 0, |
||||
RaiseError => 1, |
||||
ShowErrorStatement => 1, |
||||
} |
||||
) || die "Cannot connect to the database: " . DBI->errstr . "\n"; |
||||
|
||||
# Check current schema version |
||||
my $sth = eval { |
||||
$dbh->prepare('SELECT `value` |
||||
FROM `config` |
||||
WHERE `key`=\'schema_version\''); |
||||
}; |
||||
if ($@){ |
||||
die "DB Error: $@\n"; |
||||
} |
||||
$sth->execute; |
||||
if ($sth->err){ |
||||
die "DB Error: " . $sth->errstr . " (code: " . $sth->err . ")\n"; |
||||
} |
||||
my $cur_ver; |
||||
$sth->bind_columns(\$cur_ver); |
||||
$sth->fetch; |
||||
|
||||
print "Current version is $cur_ver\n"; |
||||
|
||||
if ($cur_ver > Vroom::Constants::DB_VERSION){ |
||||
die "Database version is unknown, sorry (current version is $cur_ver when it should be " . |
||||
Vroom::Constants::DB_VERSION . ")\n"; |
||||
} |
||||
|
||||
if ($cur_ver == Vroom::Constants::DB_VERSION){ |
||||
print "Database is up to date, nothing to do\n"; |
||||
exit 0; |
||||
} |
||||
|
Loading…
Reference in new issue