Added multiple archivers

This commit is contained in:
Andrew Pamment
2016-12-08 14:08:04 +10:00
parent 24ea37c001
commit 8f685dea00
8 changed files with 206 additions and 31 deletions

View File

@@ -0,0 +1,78 @@
#!/usr/bin/env perl
use DBI;
if (@ARGV < 1) {
print "Usage: ./user_sql_update dbfile.sq3\n";
exit(0);
}
my $dbfile = $ARGV[0];
sub check_exists {
my ($needed) = @_;
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $user = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
FetchHashKeyName => 'NAME_lc',
});
my $sql = "PRAGMA table_info(users)";
my $sth = $dbh->prepare($sql);
my $gotneeded;
$sth->execute();
while (my @row = $sth->fetchrow_array) {
if ($row[1] eq $needed) {
$gotneeded = 1;
}
}
$dbh->disconnect;
return $gotneeded;
}
if (check_exists("protocol") == 0) {
print "Column \"protocol\" doesn't exist... adding..\n";
my ($needed) = @_;
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $user = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
FetchHashKeyName => 'NAME_lc',
});
my $sql = "ALTER TABLE users ADD COLUMN protocol INTEGER DEFAULT 1";
$dbh->do($sql);
$dbh->disconnect;
}
if (check_exists("archiver") == 0) {
print "Column \"archiver\" doesn't exist... adding..\n";
my ($needed) = @_;
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $user = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
FetchHashKeyName => 'NAME_lc',
});
my $sql = "ALTER TABLE users ADD COLUMN archiver INTEGER DEFAULT 1";
$dbh->do($sql);
$dbh->disconnect;
}