122 lines
4.8 KiB
Python
122 lines
4.8 KiB
Python
# encoding=utf-8
|
|
import pymysql
|
|
import os
|
|
import json
|
|
|
|
# These environment variables are configured in app.yaml.
|
|
CLOUDSQL_CONNECTION_NAME = "hk-hockey:asia-east2:hk-hockey-sql"
|
|
LOCAL_DB_SERVER = "mariadb.db.svc.cluster.local"
|
|
CLOUDSQL_USER = "root"
|
|
CLOUDSQL_WRITE_USER = "hockeyWrite"
|
|
CLOUDSQL_READ_USER = "hockeyRead"
|
|
CLOUDSQL_PASSWORD = "P8P1YopMlwg8TxhE"
|
|
CLOUDSQL_WRITE_PASSWORD = "1URYcxXXlQ6xOWgj"
|
|
CLOUDSQL_READ_PASSWORD = "o4GWrbbkBKy3oR6u"
|
|
CLOUDSQL_DATABASE = "20209_hockeyResults"
|
|
LOCAL_DATABASE = "hockeyResults2021"
|
|
CLOUDSQL_DATABASE_STATIC = "hockeyResults"
|
|
CLOUDSQL_CHARSET = "utf8"
|
|
|
|
|
|
def write_cloudsql():
|
|
# When deployed to App Engine, the `SERVER_SOFTWARE` environment variable
|
|
# will be set to 'Google App Engine/version'.
|
|
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
|
|
# Connect using the unix socket located at
|
|
# /cloudsql/cloudsql-connection-name.
|
|
cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME)
|
|
db = pymysql.connect(unix_socket=cloudsql_unix_socket, user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET)
|
|
else:
|
|
db = pymysql.connect(host=LOCAL_DB_SERVER, user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=LOCAL_DATABASE, charset=CLOUDSQL_CHARSET)
|
|
return db
|
|
|
|
def write_cloudsql_static():
|
|
# When deployed to App Engine, the `SERVER_SOFTWARE` environment variable
|
|
# will be set to 'Google App Engine/version'.
|
|
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
|
|
# Connect using the unix socket located at
|
|
# /cloudsql/cloudsql-connection-name.
|
|
cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME)
|
|
db = pymysql.connect(unix_socket=cloudsql_unix_socket, user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE_STATIC, charset=CLOUDSQL_CHARSET)
|
|
else:
|
|
db = pymysql.connect(host=LOCAL_DB_SERVER, user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE_STATIC, charset=CLOUDSQL_CHARSET)
|
|
return db
|
|
|
|
def read_cloudsql():
|
|
# When deployed to App Engine, the `SERVER_SOFTWARE` environment variable
|
|
# will be set to 'Google App Engine/version'.
|
|
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
|
|
# Connect using the unix socket located at
|
|
# /cloudsql/cloudsql-connection-name.
|
|
cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME)
|
|
db = pymysql.connect(unix_socket=cloudsql_unix_socket, user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET)
|
|
else:
|
|
db = pymysql.connect(host=LOCAL_DB_SERVER, user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=LOCAL_DATABASE, charset=CLOUDSQL_CHARSET)
|
|
return db
|
|
|
|
def read_cloudsql_static():
|
|
# When deployed to App Engine, the `SERVER_SOFTWARE` environment variable
|
|
# will be set to 'Google App Engine/version'.
|
|
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
|
|
# Connect using the unix socket located at
|
|
# /cloudsql/cloudsql-connection-name.
|
|
cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME)
|
|
db = pymysql.connect(unix_socket=cloudsql_unix_socket, user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE_STATIC, charset=CLOUDSQL_CHARSET)
|
|
else:
|
|
db = pymysql.connect(host=LOCAL_DB_SERVER, user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE_STATIC, charset=CLOUDSQL_CHARSET)
|
|
return db
|
|
|
|
def sql_write(sql_cmd):
|
|
try:
|
|
db = write_cloudsql()
|
|
cursor = db.cursor(pymysql.cursors.DictCursor)
|
|
cursor.execute(sql_cmd)
|
|
db.commit()
|
|
except Exception as e:
|
|
print(e)
|
|
finally:
|
|
cursor.close()
|
|
db.close()
|
|
return db
|
|
|
|
def sql_write_static(sql_cmd):
|
|
try:
|
|
db = write_cloudsql_static()
|
|
cursor = db.cursor(pymysql.cursors.DictCursor)
|
|
cursor.execute(sql_cmd)
|
|
db.commit()
|
|
except Exception as e:
|
|
print(e)
|
|
finally:
|
|
cursor.close()
|
|
db.close()
|
|
return db
|
|
|
|
def sql_read(sql_cmd):
|
|
try:
|
|
db = read_cloudsql()
|
|
cursor = db.cursor(pymysql.cursors.DictCursor)
|
|
cursor.execute(sql_cmd)
|
|
rows = cursor.fetchall()
|
|
except Exception as e:
|
|
print(e)
|
|
rows = ''
|
|
finally:
|
|
cursor.close()
|
|
db.close()
|
|
return rows
|
|
|
|
def sql_read_static(sql_cmd):
|
|
try:
|
|
db = read_cloudsql_static()
|
|
cursor = db.cursor(pymysql.cursors.DictCursor)
|
|
cursor.execute(sql_cmd)
|
|
rows = cursor.fetchall()
|
|
except Exception as e:
|
|
print(e)
|
|
rows = ''
|
|
finally:
|
|
cursor.close()
|
|
db.close()
|
|
return rows
|