Mercurial > hg > rlgallery-misc
view py/setupdb.py @ 55:e421ea2519ec
dgamelaunch: define user/group by name instead of UID/GID.
The user and group might not be created with the UID and GID expected,
so it is better to use names. They can be changed to numeric values
after installation.
author | John "Elwin" Edwards |
---|---|
date | Sun, 11 May 2014 08:32:31 -0700 |
parents | e1de8aeb5ed4 |
children |
line wrap: on
line source
#!/usr/bin/python3 # setupdb.py: initializes the database tables used by the rlg system. import rlgall import psycopg2 webuser = "webserver" allowquery = "GRANT SELECT ON {0} TO " + webuser + ";" dbconn = psycopg2.connect("dbname=rlg") dbcur = dbconn.cursor() dbcur.execute("CREATE TABLE games ( gname varchar(20), offbytes int );") dbcur.execute("CREATE TABLE players (pname text PRIMARY KEY);") dbconn.commit() for game in rlgall.gamelist: dbcur.execute("INSERT INTO games VALUES (%s, %s);", (game.uname, 0)) createquery = "CREATE TABLE " + game.uname + " ( " for i, field in enumerate(game.sqltypes.keys()): createquery += "{0} {1}".format(field, game.sqltypes[field]) if field == "name": createquery += " REFERENCES players(pname)" if i == len(game.sqltypes) - 1: createquery += " )" else: createquery += ", " createquery += ";" #print createquery dbcur.execute(createquery) dbcur.execute(allowquery.format(game.uname)) dbconn.commit() dbcur.close() dbconn.close() exit()