Allow DB connection values to come from the environment

Stop hardcoding everything everywhere for those of us that don't use the
localhost/aur/aur/AUR setup. Also allow for the dummy data to be created
in the reload script if it does not exist. Finally, remove two
assumptions that the AUR database already exists.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Dan McGee 2011-03-01 09:59:03 -06:00 committed by Lukas Fleischer
parent b9690972d0
commit abd41bbb51
3 changed files with 33 additions and 21 deletions

View file

@ -1,7 +1,7 @@
-- The MySQL database layout for the AUR. Certain data -- The MySQL database layout for the AUR. Certain data
-- is also included such as AccountTypes, etc. -- is also included such as AccountTypes, etc.
-- --
DROP DATABASE AUR; DROP DATABASE IF EXISTS AUR;
CREATE DATABASE AUR DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE AUR DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE AUR; USE AUR;

View file

@ -9,13 +9,20 @@ usage: gendummydata.py outputfilename.sql
# package names. It generates the SQL statements to # package names. It generates the SQL statements to
# insert these users/packages into the AUR database. # insert these users/packages into the AUR database.
# #
import random
import time
import os
import sys
import cStringIO
import commands
DBUG = 1 DBUG = 1
SEED_FILE = "/usr/share/dict/words" SEED_FILE = "/usr/share/dict/words"
DB_HOST = "localhost" DB_HOST = os.getenv("DB_HOST", "localhost")
DB_NAME = "AUR" DB_NAME = os.getenv("DB_NAME", "AUR")
DB_USER = "aur" DB_USER = os.getenv("DB_USER", "aur")
DB_PASS = "aur" DB_PASS = os.getenv("DB_PASS", "aur")
USER_ID = 5 # Users.ID of first bogus user USER_ID = 5 # Users.ID of first bogus user
PKG_ID = 1 # Packages.ID of first package PKG_ID = 1 # Packages.ID of first package
MAX_USERS = 300 # how many users to 'register' MAX_USERS = 300 # how many users to 'register'
@ -39,14 +46,6 @@ RANDOM_LOCS = ("pub", "release", "files", "downloads", "src")
FORTUNE_CMD = "/usr/bin/fortune -l" FORTUNE_CMD = "/usr/bin/fortune -l"
import random
import time
import os
import sys
import cStringIO
import commands
if len(sys.argv) != 2: if len(sys.argv) != 2:
sys.stderr.write("Missing output filename argument"); sys.stderr.write("Missing output filename argument");
raise SystemExit raise SystemExit
@ -60,6 +59,7 @@ out.write("BEGIN;\n")
# #
if not os.path.exists(SEED_FILE): if not os.path.exists(SEED_FILE):
sys.stderr.write("Please install the 'words' Arch package\n"); sys.stderr.write("Please install the 'words' Arch package\n");
raise SystemExit
# Make sure database access will be available # Make sure database access will be available
# #

View file

@ -1,17 +1,29 @@
#!/bin/sh #!/bin/bash -e
mydir=`pwd` DB_NAME=${DB_NAME:-AUR}
if [ `basename $mydir` != "schema" ]; then DB_USER=${DB_USER:-aur}
# Password should allow empty definition
DB_PASS=${DB_PASS-aur}
DB_HOST=${DB_HOST:-localhost}
DATA_FILE=${DATA_FILE:-dummy-data.sql}
echo "Using database $DB_NAME, user $DB_USER, host $DB_HOST"
mydir=$(pwd)
if [ $(basename $mydir) != "schema" ]; then
echo "you must be in the aur/support/schema directory to run this script" echo "you must be in the aur/support/schema directory to run this script"
exit exit 1
fi fi
echo "recreating database..." echo "recreating database..."
mysql -uaur -paur AUR < ./aur-schema.sql mysql -h $DB_HOST -u $DB_USER -p$DB_PASS < aur-schema.sql
if [ ! -f $DATA_FILE ]; then
echo "creating dumy-data..."
python2 gendummydata.py $DATA_FILE
fi
echo "loading dummy-data..." echo "loading dummy-data..."
bzcat ./dummy-data.sql.bz2 | mysql -uaur -paur AUR mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME < $DATA_FILE
echo "done." echo "done."
exit