Tweak mysql.sql() to allow suppressing echo and output

also install default-mysql-server now, per latest debian
This commit is contained in:
Lance Edgar 2019-09-09 14:18:11 -05:00
parent f787b3ad79
commit 039af4b394

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2018 Lance Edgar # Copyright © 2010-2019 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -24,8 +24,6 @@
Fabric Library for MySQL Fabric Library for MySQL
""" """
from __future__ import unicode_literals, absolute_import
from rattail_fabric2 import apt, make_deploy from rattail_fabric2 import apt, make_deploy
@ -36,7 +34,7 @@ def install(c):
""" """
Install the MySQL database service Install the MySQL database service
""" """
apt.install(c, 'mysql-server') apt.install(c, 'default-mysql-server')
def user_exists(c, name, host='localhost'): def user_exists(c, name, host='localhost'):
@ -54,9 +52,8 @@ def create_user(c, name, host='localhost', password=None, checkfirst=True):
if not checkfirst or not user_exists(c, name, host): if not checkfirst or not user_exists(c, name, host):
sql(c, "CREATE USER '{}'@'{}';".format(name, host)) sql(c, "CREATE USER '{}'@'{}';".format(name, host))
if password: if password:
# with hide('running'):
sql(c, "SET PASSWORD FOR '{}'@'{}' = PASSWORD('{}');".format( sql(c, "SET PASSWORD FOR '{}'@'{}' = PASSWORD('{}');".format(
name, host, password)) name, host, password), hide=True, echo=False)
def db_exists(c, name): def db_exists(c, name):
@ -107,7 +104,7 @@ def table_exists(c, tblname, dbname):
return name == tblname return name == tblname
def sql(c, sql, database=''): def sql(c, sql, database='', **kwargs):
""" """
Execute some SQL. Execute some SQL.
""" """
@ -116,7 +113,8 @@ def sql(c, sql, database=''):
sql = sql.replace("'", "'\"'\"'") sql = sql.replace("'", "'\"'\"'")
# note, we force sudo "as root" to ensure -H flag is used # note, we force sudo "as root" to ensure -H flag is used
# (which allows us to leverage /root/.my.cnf config file) # (which allows us to leverage /root/.my.cnf config file)
return c.sudo("mysql --execute='{}' --batch --skip-column-names {}".format(sql, database), user='root') kwargs['user'] = 'root'
return c.sudo("mysql --execute='{}' --batch --skip-column-names {}".format(sql, database), **kwargs)
def download_db(c, name, destination=None): def download_db(c, name, destination=None):