99DB_PASSWD = os .getenv ("DB_PASSWD" )
1010db_user = ""
1111db_passwd = ""
12- if DB_USER :
12+ if DB_ROOT_USER and DB_ROOT_PASSWD :
13+ db_user = "root"
14+ db_passwd = DB_ROOT_PASSWD
15+ elif DB_USER and DB_PASSWD :
1316 db_user = DB_USER
1417 db_passwd = DB_PASSWD
1518else :
1619 db_user = "root"
17- db_passwd = DB_ROOT_PASSWD
20+ db_passwd = ""
1821
1922DB_HOST = os .getenv ("DB_HOST" , "seatable-mysql" )
2023DB_PORT = int (os .getenv ("DB_PORT" , "3306" ))
@@ -36,54 +39,20 @@ def wait_for_mysql():
3639 return
3740
3841
39- def check_and_create_mysql_user ():
40- connection = pymysql .connect (
41- host = DB_HOST , port = DB_PORT , user = DB_ROOT_USER , passwd = DB_ROOT_PASSWD
42- )
43-
44- try :
45- with connection .cursor () as cursor :
46- if db_user != "root" :
47- query_user_exists = f"SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User='{ db_user } ' AND Host='%') AS user_exists;"
48- cursor .execute (query_user_exists )
49- result = cursor .fetchone ()
50- user_exists = result [0 ] == 1
51- if not user_exists :
52- create_user_sql = (
53- f"CREATE USER '{ db_user } '@'%' IDENTIFIED BY '{ db_passwd } ';"
54- )
55- cursor .execute (create_user_sql )
56- print (f"Create user '{ db_user } '@'%' sucessfully." )
57-
58- grant_privileges_sql = (
59- f"GRANT ALL PRIVILEGES ON { DATABASE_NAME } .* TO '{ db_user } '@'%';"
60- )
61- for stmt in grant_privileges_sql .split (";" ):
62- if stmt .strip ():
63- cursor .execute (stmt )
64- print (f"Granted user '{ db_user } '@'%' privileges sucessfully." )
65-
66- cursor .execute ("FLUSH PRIVILEGES;" )
67- finally :
68- connection .close ()
69-
70-
7142wait_for_mysql ()
7243
73- sql = 'mysql -h %s -u%s -p%s -e "CREATE DATABASE IF NOT EXISTS %s;"' % (
74- shlex .quote (DB_HOST ),
75- shlex .quote (DB_ROOT_USER ),
76- shlex .quote (DB_ROOT_PASSWD ),
77- DATABASE_NAME ,
78- )
79- os .system (sql )
80-
81- check_and_create_mysql_user ()
82-
44+ if db_user == "root" :
45+ sql = 'mysql -h %s -u%s -p%s -e "CREATE DATABASE IF NOT EXISTS %s;"' % (
46+ shlex .quote (DB_HOST ),
47+ shlex .quote (db_user ),
48+ shlex .quote (db_passwd ),
49+ DATABASE_NAME ,
50+ )
51+ os .system (sql )
8352sql = "mysql -h %s -u%s -p%s %s </opt/scheduler/database/initial_tables.sql" % (
8453 shlex .quote (DB_HOST ),
85- shlex .quote (DB_ROOT_USER ),
86- shlex .quote (DB_ROOT_PASSWD ),
54+ shlex .quote (db_user ),
55+ shlex .quote (db_passwd ),
8756 DATABASE_NAME ,
8857)
8958os .system (sql )
0 commit comments