comparison py/setupdb.py @ 0:5ba2123d2c20

Put this project under version control, finally. Scripts for rlgallery.org, using a PostgreSQL backend. The recorder system is in py/, CGI scripts are in web/.
author John "Elwin" Edwards <elwin@sdf.org>
date Wed, 25 Jul 2012 21:59:42 -0700
parents
children e8f3b7994d88
comparison
equal deleted inserted replaced
-1:000000000000 0:5ba2123d2c20
1 #!/usr/bin/python
2 # setupdb.py: initializes the database tables used by the rlg system.
3
4 import rlgalldb as rlgall
5 import psycopg2
6
7 webuser = "webserver"
8 allowquery = "GRANT SELECT ON {0} TO " + webuser + ";"
9
10 dbconn = psycopg2.connect("dbname=rlg")
11 dbcur = dbconn.cursor()
12
13 dbcur.execute("CREATE TABLE games ( gname varchar(20), offbytes int );")
14 dbcur.execute("CREATE TABLE players (pname varchar(20) PRIMARY KEY);")
15 dbconn.commit()
16
17 for game in rlgall.gamelist:
18 dbcur.execute("INSERT INTO games VALUES (%s, %s);", (game.uname, 0))
19
20 createquery = "CREATE TABLE " + game.uname + " ( "
21 for i, field in enumerate(game.sqltypes.keys()):
22 createquery += "{0} {1}".format(field, game.sqltypes[field])
23 if field == "name":
24 createquery += " REFERENCES players(pname)"
25 if i == len(game.sqltypes) - 1:
26 createquery += " )"
27 else:
28 createquery += ", "
29 createquery += ";"
30 #print createquery
31 dbcur.execute(createquery)
32 dbcur.execute(allowquery.format(game.uname))
33 dbconn.commit()
34
35 dbcur.close()
36 dbconn.close()
37 exit()