# retrieve a list of db's from the server.
my %db;
foreach ($dbh->func('_ListTables')) {
+ &status("table => $_");
$db{$_} = 1;
}
+ # create database.
+ if (!scalar keys %db) {
+ &status("Creating database $param{'DBName'}...");
+ $query = "CREATE DATABASE $param{'DBName'}";
+ &dbRaw("create(db $param{'DBName'})", $query);
+ }
+
# Step 4.
print "Step 4: Creating the tables.\n";
print " creating new table freshmeat...\n";
$query = "CREATE TABLE freshmeat (".
- "name VARCHAR(64) NOT NULL,".
- "stable VARCHAR(32),".
- "devel VARCHAR(32),".
- "section VARCHAR(40),".
+ "projectname_short VARCHAR(64) NOT NULL,".
+ "latest_version VARCHAR(32) DEFAULT 'none' NOT NULL,".
"license VARCHAR(32),".
- "homepage VARCHAR(128),".
- "download VARCHAR(128),".
- "changelog VARCHAR(128),".
- "deb VARCHAR(128),".
- "rpm VARCHAR(128),".
- "link CHAR(55),".
- "oneliner VARCHAR(96) NOT NULL,".
+ "url_deb VARCHAR(128),".
+ "url_homepage VARCHAR(128),".
+ "desc_short VARCHAR(96) NOT NULL,".
- "PRIMARY KEY (name)".
+ "PRIMARY KEY (projectname_short,latest_version)".
")";
&dbRaw("create(freshmeat)", $query);
$query = "CREATE TABLE karma (".
"nick VARCHAR(20) NOT NULL,".
- "karma SMALLINT UNSIGNED,".
+ "karma SMALLINT,".
"PRIMARY KEY (nick)".
")";
# grant.
&status(" Granting user access to table.");
- $query = "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname TO $param{'SQLUser'}";
- &dbRaw("??", $query);
+ foreach ("factoids","seen","freshmeat") {
+ $query = "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname.$_ TO $param{'SQLUser'}";
+ &dbRaw("GRANT", $query);
+ }
# flush.
&status("Flushing privileges...");
$query = "FLUSH PRIVILEGES"; # DOES NOT WORK on slink?
&dbRaw("mysql(flush)", $query);
- # create database.
- &status("Creating database $param{'DBName'}...");
- $query = "CREATE DATABASE $param{'DBName'}";
- &dbRaw("create(db $param{'DBName'})", $query);
-
} elsif ($param{'DBType'} =~ /pgsql|postgres/i) {
if ($param{'DBType'} =~ /pgsql|postgres/i) { use Pg; } # for runtime.
my $dbh = Pg::connectdb("dbname=$dbname");