view py/setupdb.py @ 87:1bddd1839831

Update the dgamelaunch patch to work with the most recent changes. Also set the umask, just in case it defaults to 0077.
author John "Elwin" Edwards
date Sat, 24 Nov 2018 16:47:24 -0500
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()