Mercurial > hg > rlgallery-misc
view py/setupdb.py @ 21:453278a81371
Add tablerecent() so recent.cgi will work as before.
Port the tablerecent() function, which reads the most recent games
directly from the logfile instead of the database. This allows
recent.cgi to show games immediately without waiting for the recorder
to put them in the database.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Mon, 17 Sep 2012 13:41:10 -0700 |
parents | 5ba2123d2c20 |
children | e8f3b7994d88 |
line wrap: on
line source
#!/usr/bin/python # setupdb.py: initializes the database tables used by the rlg system. import rlgalldb as 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 varchar(20) 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()