- self.db = pgdb.connect(user = api.config.PLC_DB_USER,
- password = api.config.PLC_DB_PASSWORD,
- host = "%s:%d" % (api.config.PLC_DB_HOST, api.config.PLC_DB_PORT),
- database = api.config.PLC_DB_NAME)
+ if psycopg2:
+ try:
+ # Try UNIX socket first
+ self.db = psycopg2.connect(user = api.config.PLC_DB_USER,
+ password = api.config.PLC_DB_PASSWORD,
+ database = api.config.PLC_DB_NAME)
+ except psycopg2.OperationalError:
+ # Fall back on TCP
+ self.db = psycopg2.connect(user = api.config.PLC_DB_USER,
+ password = api.config.PLC_DB_PASSWORD,
+ database = api.config.PLC_DB_NAME,
+ host = api.config.PLC_DB_HOST,
+ port = api.config.PLC_DB_PORT)
+ self.db.set_client_encoding("UNICODE")
+ else:
+ self.db = pgdb.connect(user = api.config.PLC_DB_USER,
+ password = api.config.PLC_DB_PASSWORD,
+ host = "%s:%d" % (api.config.PLC_DB_HOST, api.config.PLC_DB_PORT),
+ database = api.config.PLC_DB_NAME)
+