lybrary/lybmods/lybpqconn.py

33 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
import psycopg2
import psycopg2.extensions
import lybmods.lybcfg as lybcfg
import lybmods.lybtools as lybtools
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)
conn = psycopg2.connect(database=lybcfg.dbname, user=lybcfg.dbuser, password=lybcfg.dbpass, host=lybcfg.dbhost)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
def create_schema():
cur = conn.cursor()
l = [
(lybcfg.pwd_table_name, lybtools.AUTH_SCHEMA),
(lybcfg.sess_table_name, lybtools.SESS_SCHEMA),
(lybcfg.cat_table_name, lybtools.CAT_SCHEMA),
(lybcfg.doc_table_name, lybtools.DOC_SCHEMA),
(lybcfg.bin_table_name, lybtools.BIN_SCHEMA),
(lybcfg.docbin_table_name, lybtools.DOCBIN_SCHEMA),
(lybcfg.grpcat_access_table, lybtools.GRPCAT_ACCESS_SCHEMA),
(lybcfg.grpdoc_access_table, lybtools.GRPDOC_ACCESS_SCHEMA),
(lybcfg.pwdcat_access_table, lybtools.PWDCAT_ACCESS_SCHEMA),
(lybcfg.pwddoc_access_table, lybtools.PWDDOC_ACCESS_SCHEMA)
]
for k in l:
try:
cur.execute('SELECT COUNT(*) FROM %s' % k[0])
except:
cur.execute(k[1])
conn.commit()