Black all files
This commit is contained in:
1 parent
03bd7753e5
commit
f05b199925
6 files changed
+231
-233
No files matched your search
@@ -23,55 +23,58 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def has_default(sql, **kwargs):
|
||||
if re.search('SET DEFAULT', sql) and kwargs['errors']:
|
||||
err = next(
|
||||
(err for err in kwargs['errors'] if err['code'] == 'NOT_NULL'),
|
||||
None,
|
||||
)
|
||||
if re.search("SET DEFAULT", sql) and kwargs["errors"]:
|
||||
err = next((err for err in kwargs["errors"] if err["code"] == "NOT_NULL"), None)
|
||||
if err:
|
||||
logger.info(
|
||||
('Found a NOT_NULL error in migration, '
|
||||
'but it has a default value added: {}').format(err)
|
||||
(
|
||||
"Found a NOT_NULL error in migration, "
|
||||
"but it has a default value added: {}"
|
||||
).format(err)
|
||||
)
|
||||
kwargs['errors'].remove(err)
|
||||
kwargs["errors"].remove(err)
|
||||
|
||||
return False # Never fails
|
||||
|
||||
|
||||
migration_tests = (
|
||||
{
|
||||
'code': 'NOT_NULL',
|
||||
'fn': lambda sql, **kw: re.search('NOT NULL', sql) and
|
||||
not re.search('CREATE TABLE', sql),
|
||||
'err_msg': 'NOT NULL constraint on columns'
|
||||
}, {
|
||||
'code': 'DROP_COLUMN',
|
||||
'fn': lambda sql, **kw: re.search('DROP COLUMN', sql),
|
||||
'err_msg': 'DROPPING columns'
|
||||
}, {
|
||||
'code': 'RENAME_COLUMN',
|
||||
'fn': lambda sql, **kw: re.search('ALTER TABLE .* CHANGE', sql) or
|
||||
re.search('ALTER TABLE .* RENAME COLUMN', sql),
|
||||
'err_msg': 'RENAMING columns'
|
||||
}, {
|
||||
'code': 'RENAME_TABLE',
|
||||
'fn': lambda sql, **kw: re.search('RENAME TABLE', sql) or
|
||||
re.search('ALTER TABLE .* RENAME TO', sql),
|
||||
'err_msg': 'RENAMING tables'
|
||||
}, {
|
||||
'code': 'ALTER_COLUMN',
|
||||
'fn': lambda sql, **kw: re.search('ALTER TABLE .* MODIFY', sql),
|
||||
'err_msg': ('ALTERING columns (Could be backward compatible. '
|
||||
'You may ignore this migration.)')
|
||||
}, {
|
||||
'code': '',
|
||||
'fn': has_default,
|
||||
'err_msg': ''
|
||||
}, {
|
||||
'code': IGNORED_MIGRATION,
|
||||
'fn': lambda sql, **kw: re.search(IGNORE_MIGRATION_SQL, sql),
|
||||
'err_msg': '',
|
||||
}
|
||||
"code": "NOT_NULL",
|
||||
"fn": lambda sql, **kw: re.search("NOT NULL", sql)
|
||||
and not re.search("CREATE TABLE", sql),
|
||||
"err_msg": "NOT NULL constraint on columns",
|
||||
},
|
||||
{
|
||||
"code": "DROP_COLUMN",
|
||||
"fn": lambda sql, **kw: re.search("DROP COLUMN", sql),
|
||||
"err_msg": "DROPPING columns",
|
||||
},
|
||||
{
|
||||
"code": "RENAME_COLUMN",
|
||||
"fn": lambda sql, **kw: re.search("ALTER TABLE .* CHANGE", sql)
|
||||
or re.search("ALTER TABLE .* RENAME COLUMN", sql),
|
||||
"err_msg": "RENAMING columns",
|
||||
},
|
||||
{
|
||||
"code": "RENAME_TABLE",
|
||||
"fn": lambda sql, **kw: re.search("RENAME TABLE", sql)
|
||||
or re.search("ALTER TABLE .* RENAME TO", sql),
|
||||
"err_msg": "RENAMING tables",
|
||||
},
|
||||
{
|
||||
"code": "ALTER_COLUMN",
|
||||
"fn": lambda sql, **kw: re.search("ALTER TABLE .* MODIFY", sql),
|
||||
"err_msg": (
|
||||
"ALTERING columns (Could be backward compatible. "
|
||||
"You may ignore this migration.)"
|
||||
),
|
||||
},
|
||||
{"code": "", "fn": has_default, "err_msg": ""},
|
||||
{
|
||||
"code": IGNORED_MIGRATION,
|
||||
"fn": lambda sql, **kw: re.search(IGNORE_MIGRATION_SQL, sql),
|
||||
"err_msg": "",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -80,32 +83,23 @@ def analyse_sql_statements(sql_statements):
|
||||
ignored = False
|
||||
for statement in sql_statements:
|
||||
for test in migration_tests:
|
||||
if test['fn'](statement, errors=errors):
|
||||
if test['code'] == IGNORED_MIGRATION:
|
||||
logger.info(
|
||||
'Testing {0} -- IGNORING MIGRATION'.format(statement)
|
||||
)
|
||||
if test["fn"](statement, errors=errors):
|
||||
if test["code"] == IGNORED_MIGRATION:
|
||||
logger.info("Testing {0} -- IGNORING MIGRATION".format(statement))
|
||||
ignored = True
|
||||
else:
|
||||
logger.info('Testing {0} -- ERROR'.format(statement))
|
||||
logger.info("Testing {0} -- ERROR".format(statement))
|
||||
table_search = re.search(
|
||||
'TABLE `([^`]*)`', statement, re.IGNORECASE)
|
||||
col_search = re.search(
|
||||
'COLUMN `([^`]*)`', statement, re.IGNORECASE)
|
||||
"TABLE `([^`]*)`", statement, re.IGNORECASE
|
||||
)
|
||||
col_search = re.search("COLUMN `([^`]*)`", statement, re.IGNORECASE)
|
||||
err = {
|
||||
'err_msg':
|
||||
test['err_msg'],
|
||||
'code':
|
||||
test['code'],
|
||||
'table':
|
||||
table_search.group(1) if table_search else None,
|
||||
'column':
|
||||
col_search.group(1) if col_search else None
|
||||
"err_msg": test["err_msg"],
|
||||
"code": test["code"],
|
||||
"table": table_search.group(1) if table_search else None,
|
||||
"column": col_search.group(1) if col_search else None,
|
||||
}
|
||||
errors.append(err)
|
||||
else:
|
||||
logger.info('Testing {0} -- PASSED'.format(statement))
|
||||
return {
|
||||
'errors': errors,
|
||||
'ignored': ignored
|
||||
}
|
||||
logger.info("Testing {0} -- PASSED".format(statement))
|
||||
return {"errors": errors, "ignored": ignored}
|
||||
Reference in new issue
Block a user