[WiP] Switch to PyMySQL

I couldn't get the tests to run locally so wasting gate resources

Change-Id: I983a2d3788fade3fef67feaa94c29b02dfbdf8c0
This commit is contained in:
Tony Breeds 2016-11-08 16:11:02 +11:00 committed by Mark Hamzy
parent 952d4b133f
commit caa3cb7710
2 changed files with 10 additions and 4 deletions

View File

@ -43,7 +43,7 @@ from contextlib import contextmanager
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.exc import OperationalError
from sqlalchemy.exc import InternalError, OperationalError
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.schema import MetaData, Table
@ -306,7 +306,13 @@ class DataBase(object):
engine = self.create_engine()
c = engine.connect()
c.close()
except OperationalError:
except (OperationalError, InternalError) as e:
if isinstance(e, InternalError):
(num, msg) = e.orig.args
if num != 1049 or msg != "Unknown database 'MoltenIron'":
raise
# It does not! Create it.
# CREATE DATABASE MoltenIron;
sqlalchemy_utils.create_database(engine.url)
engine = self.create_engine()
c = engine.connect()
@ -360,7 +366,7 @@ class DataBase(object):
engine = None
if self.db_type == TYPE_MYSQL:
engine = create_engine("mysql://%s:%s@%s/%s"
engine = create_engine("mysql+pymysql://%s:%s@%s/%s"
% (self.user,
self.passwd,
self.host,

View File

@ -5,7 +5,7 @@
pbr>=1.6 # Apache-2.0
daemonize
MySQL-python
PyMySQL>=0.6.2,!=0.7.7 # MIT License
pyyaml
sqlalchemy
sqlalchemy_utils