Merge "ModelsMigrationsSync:add correct server_default check for Enum"
This commit is contained in:
@@ -475,7 +475,11 @@ class ModelsMigrationsSync(object):
|
||||
|
||||
@_compare_server_default.dispatch_for('postgresql')
|
||||
def _compare_server_default(bind, meta_col, insp_def, meta_def):
|
||||
if isinstance(meta_col.type, sqlalchemy.String):
|
||||
if isinstance(meta_col.type, sqlalchemy.Enum):
|
||||
if meta_def is None or insp_def is None:
|
||||
return meta_def != insp_def
|
||||
return insp_def != "'%s'::%s" % (meta_def.arg, meta_col.type.name)
|
||||
elif isinstance(meta_col.type, sqlalchemy.String):
|
||||
if meta_def is None or insp_def is None:
|
||||
return meta_def != insp_def
|
||||
return insp_def != "'%s'::character varying" % meta_def.arg
|
||||
|
||||
@@ -191,6 +191,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
|
||||
sa.Column('defaulttest', sa.Integer, server_default='5'),
|
||||
sa.Column('defaulttest2', sa.String(8), server_default=''),
|
||||
sa.Column('defaulttest3', sa.String(5), server_default="test"),
|
||||
sa.Column('defaulttest4', sa.Enum('first', 'second',
|
||||
name='testenum'),
|
||||
server_default="first"),
|
||||
sa.UniqueConstraint('spam', 'eggs', name='uniq_cons'),
|
||||
)
|
||||
|
||||
@@ -214,6 +217,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
|
||||
server_default='')
|
||||
defaulttest3 = sa.Column('defaulttest3', sa.String(5),
|
||||
server_default="test")
|
||||
defaulttest4 = sa.Column('defaulttest4', sa.Enum('first', 'second',
|
||||
name='testenum'),
|
||||
server_default="first")
|
||||
bar = sa.Column('bar', sa.Numeric(10, 5))
|
||||
|
||||
class ModelThatShouldNotBeCompared(BASE):
|
||||
@@ -248,6 +254,9 @@ class ModelsMigrationSyncMixin(test.BaseTestCase):
|
||||
sa.Column('defaulttest', sa.Integer, server_default='7'),
|
||||
sa.Column('defaulttest2', sa.String(8), server_default=''),
|
||||
sa.Column('defaulttest3', sa.String(5), server_default="fake"),
|
||||
sa.Column('defaulttest4',
|
||||
sa.Enum('first', 'second', name='testenum'),
|
||||
server_default="first"),
|
||||
sa.UniqueConstraint('spam', 'foo', name='uniq_cons'),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user