db-migrate: backport some changes for py3 compat.
This commit is contained in:
parent
ff2c8fd444
commit
0021e33e42
7 changed files with 33 additions and 11 deletions
|
|
@ -12,10 +12,11 @@ from sqlalchemy import __version__ as _sa_version
|
|||
|
||||
warnings.simplefilter('always', DeprecationWarning)
|
||||
|
||||
_sa_version = tuple(int(re.match("\d+", x).group(0))
|
||||
for x in _sa_version.split("."))
|
||||
_sa_version = tuple(int(re.match("\d+", x).group(0)) for x in _sa_version.split("."))
|
||||
SQLA_07 = _sa_version >= (0, 7)
|
||||
SQLA_08 = _sa_version >= (0, 8)
|
||||
SQLA_09 = _sa_version >= (0, 9)
|
||||
SQLA_10 = _sa_version >= (1, 0)
|
||||
|
||||
del re
|
||||
del _sa_version
|
||||
|
|
@ -23,8 +24,8 @@ del _sa_version
|
|||
from rhodecode.lib.dbmigrate.migrate.changeset.schema import *
|
||||
from rhodecode.lib.dbmigrate.migrate.changeset.constraint import *
|
||||
|
||||
sqlalchemy.schema.Table.__bases__ += (ChangesetTable,)
|
||||
sqlalchemy.schema.Column.__bases__ += (ChangesetColumn,)
|
||||
sqlalchemy.schema.Index.__bases__ += (ChangesetIndex,)
|
||||
sqlalchemy.schema.Table.__bases__ += (ChangesetTable, )
|
||||
sqlalchemy.schema.Column.__bases__ += (ChangesetColumn, )
|
||||
sqlalchemy.schema.Index.__bases__ += (ChangesetIndex, )
|
||||
|
||||
sqlalchemy.schema.DefaultClause.__bases__ += (ChangesetDefaultClause,)
|
||||
sqlalchemy.schema.DefaultClause.__bases__ += (ChangesetDefaultClause, )
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@ class ANSIColumnGenerator(AlterTableVisitor, SchemaGenerator):
|
|||
|
||||
table = self.start_alter_table(column)
|
||||
self.append("ADD ")
|
||||
|
||||
self.append(self.get_column_specification(column))
|
||||
|
||||
for cons in column.constraints:
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ class ForeignKeyConstraint(ConstraintChangeset, schema.ForeignKeyConstraint):
|
|||
refcolnames, reftable = self._normalize_columns(refcolumns,
|
||||
table_name=True)
|
||||
super(ForeignKeyConstraint, self).__init__(
|
||||
colnames, refcolnames, *args,**kwargs
|
||||
colnames, refcolnames, *args, **kwargs
|
||||
)
|
||||
if table is not None:
|
||||
self._set_parent(table)
|
||||
|
|
|
|||
|
|
@ -3,11 +3,15 @@
|
|||
|
||||
.. _`SQLite`: http://www.sqlite.org/
|
||||
"""
|
||||
from UserDict import DictMixin
|
||||
try: # Python 3
|
||||
from collections.abc import MutableMapping as DictMixin
|
||||
except ImportError: # Python 2
|
||||
from UserDict import DictMixin
|
||||
from copy import copy
|
||||
import re
|
||||
|
||||
from sqlalchemy.databases import sqlite as sa_base
|
||||
from sqlalchemy.schema import ForeignKeyConstraint
|
||||
from sqlalchemy.schema import UniqueConstraint
|
||||
|
||||
from rhodecode.lib.dbmigrate.migrate import exceptions
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
"""
|
||||
Schema module providing common schema operations.
|
||||
"""
|
||||
import abc
|
||||
try: # Python 3
|
||||
from collections.abc import MutableMapping as DictMixin
|
||||
except ImportError: # Python 2
|
||||
from UserDict import DictMixin
|
||||
import warnings
|
||||
|
||||
from UserDict import DictMixin
|
||||
|
||||
import sqlalchemy
|
||||
|
||||
from sqlalchemy.schema import ForeignKeyConstraint
|
||||
|
|
|
|||
|
|
@ -1,6 +1,17 @@
|
|||
"""
|
||||
Safe quoting method
|
||||
"""
|
||||
from rhodecode.lib.dbmigrate.migrate.changeset import SQLA_10
|
||||
|
||||
|
||||
def fk_column_names(constraint):
|
||||
if SQLA_10:
|
||||
return [
|
||||
constraint.columns[key].name for key in constraint.column_keys]
|
||||
else:
|
||||
return [
|
||||
element.parent.name for element in constraint.elements]
|
||||
|
||||
|
||||
def safe_quote(obj):
|
||||
# this is the SQLA 0.9 approach
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ class InvalidVersionError(ControlledSchemaError):
|
|||
"""Invalid version number."""
|
||||
|
||||
|
||||
class VersionNotFoundError(KeyError):
|
||||
"""Specified version is not present."""
|
||||
|
||||
|
||||
class DatabaseNotControlledError(ControlledSchemaError):
|
||||
"""Database should be under version control, but it's not."""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue