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