21 lines
633 B
Python
21 lines
633 B
Python
|
from peewee import OperationalError
|
||
|
|
||
|
from data.database import validate_database_precondition
|
||
|
from util.config.validators import BaseValidator, ConfigValidationException
|
||
|
|
||
|
class DatabaseValidator(BaseValidator):
|
||
|
name = "database"
|
||
|
|
||
|
@classmethod
|
||
|
def validate(cls, validator_context):
|
||
|
""" Validates connecting to the database. """
|
||
|
config = validator_context.config
|
||
|
|
||
|
try:
|
||
|
validate_database_precondition(config['DB_URI'], config.get('DB_CONNECTION_ARGS', {}))
|
||
|
except OperationalError as ex:
|
||
|
if ex.args and len(ex.args) > 1:
|
||
|
raise ConfigValidationException(ex.args[1])
|
||
|
else:
|
||
|
raise ex
|