##// END OF EJS Templates
db-migrate: backport some changes for py3 compat.
marcink -
r4343:2ba995a1 default
parent child Browse files
Show More
@@ -12,10 +12,11 b' from sqlalchemy import __version__ as _s'
12 12
13 13 warnings.simplefilter('always', DeprecationWarning)
14 14
15 _sa_version = tuple(int(re.match("\d+", x).group(0))
16 for x in _sa_version.split("."))
15 _sa_version = tuple(int(re.match("\d+", x).group(0)) for x in _sa_version.split("."))
17 16 SQLA_07 = _sa_version >= (0, 7)
18 17 SQLA_08 = _sa_version >= (0, 8)
18 SQLA_09 = _sa_version >= (0, 9)
19 SQLA_10 = _sa_version >= (1, 0)
19 20
20 21 del re
21 22 del _sa_version
@@ -23,8 +24,8 b' del _sa_version'
23 24 from rhodecode.lib.dbmigrate.migrate.changeset.schema import *
24 25 from rhodecode.lib.dbmigrate.migrate.changeset.constraint import *
25 26
26 sqlalchemy.schema.Table.__bases__ += (ChangesetTable,)
27 sqlalchemy.schema.Column.__bases__ += (ChangesetColumn,)
28 sqlalchemy.schema.Index.__bases__ += (ChangesetIndex,)
27 sqlalchemy.schema.Table.__bases__ += (ChangesetTable, )
28 sqlalchemy.schema.Column.__bases__ += (ChangesetColumn, )
29 sqlalchemy.schema.Index.__bases__ += (ChangesetIndex, )
29 30
30 sqlalchemy.schema.DefaultClause.__bases__ += (ChangesetDefaultClause,)
31 sqlalchemy.schema.DefaultClause.__bases__ += (ChangesetDefaultClause, )
@@ -97,7 +97,6 b' class ANSIColumnGenerator(AlterTableVisi'
97 97
98 98 table = self.start_alter_table(column)
99 99 self.append("ADD ")
100
101 100 self.append(self.get_column_specification(column))
102 101
103 102 for cons in column.constraints:
@@ -111,7 +111,7 b' class ForeignKeyConstraint(ConstraintCha'
111 111 refcolnames, reftable = self._normalize_columns(refcolumns,
112 112 table_name=True)
113 113 super(ForeignKeyConstraint, self).__init__(
114 colnames, refcolnames, *args,**kwargs
114 colnames, refcolnames, *args, **kwargs
115 115 )
116 116 if table is not None:
117 117 self._set_parent(table)
@@ -3,11 +3,15 b''
3 3
4 4 .. _`SQLite`: http://www.sqlite.org/
5 5 """
6 from UserDict import DictMixin
6 try: # Python 3
7 from collections.abc import MutableMapping as DictMixin
8 except ImportError: # Python 2
9 from UserDict import DictMixin
7 10 from copy import copy
8 11 import re
9 12
10 13 from sqlalchemy.databases import sqlite as sa_base
14 from sqlalchemy.schema import ForeignKeyConstraint
11 15 from sqlalchemy.schema import UniqueConstraint
12 16
13 17 from rhodecode.lib.dbmigrate.migrate import exceptions
@@ -1,10 +1,13 b''
1 1 """
2 2 Schema module providing common schema operations.
3 3 """
4 import abc
5 try: # Python 3
6 from collections.abc import MutableMapping as DictMixin
7 except ImportError: # Python 2
8 from UserDict import DictMixin
4 9 import warnings
5 10
6 from UserDict import DictMixin
7
8 11 import sqlalchemy
9 12
10 13 from sqlalchemy.schema import ForeignKeyConstraint
@@ -1,6 +1,17 b''
1 1 """
2 2 Safe quoting method
3 3 """
4 from rhodecode.lib.dbmigrate.migrate.changeset import SQLA_10
5
6
7 def fk_column_names(constraint):
8 if SQLA_10:
9 return [
10 constraint.columns[key].name for key in constraint.column_keys]
11 else:
12 return [
13 element.parent.name for element in constraint.elements]
14
4 15
5 16 def safe_quote(obj):
6 17 # this is the SQLA 0.9 approach
@@ -27,6 +27,10 b' class InvalidVersionError(ControlledSche'
27 27 """Invalid version number."""
28 28
29 29
30 class VersionNotFoundError(KeyError):
31 """Specified version is not present."""
32
33
30 34 class DatabaseNotControlledError(ControlledSchemaError):
31 35 """Database should be under version control, but it's not."""
32 36
General Comments 0
You need to be logged in to leave comments. Login now