- [bug] Fixed bug whereby create_unique_constraint()
would include in the constraint columns that are added to all Table objects using events, externally to the generation of the constraint.
This commit is contained in:
5
CHANGES
5
CHANGES
@@ -7,6 +7,11 @@
|
||||
ForeignKey target in column alter operations,
|
||||
courtesy Alexander Kolov.
|
||||
|
||||
- [bug] Fixed bug whereby create_unique_constraint()
|
||||
would include in the constraint columns that
|
||||
are added to all Table objects using events,
|
||||
externally to the generation of the constraint.
|
||||
|
||||
0.3.1
|
||||
=====
|
||||
- [bug] bulk_insert() fixes:
|
||||
|
||||
@@ -74,7 +74,7 @@ class Operations(object):
|
||||
t = schema.Table(source, schema.MetaData(),
|
||||
*[schema.Column(n, NULLTYPE) for n in local_cols])
|
||||
kw['name'] = name
|
||||
uq = schema.UniqueConstraint(*t.c, **kw)
|
||||
uq = schema.UniqueConstraint(*[t.c[n] for n in local_cols], **kw)
|
||||
# TODO: need event tests to ensure the event
|
||||
# is fired off here
|
||||
t.append_constraint(uq)
|
||||
|
||||
@@ -201,6 +201,22 @@ def test_add_unique_constraint():
|
||||
"ALTER TABLE t1 ADD CONSTRAINT uk_test UNIQUE (foo, bar)"
|
||||
)
|
||||
|
||||
def test_add_unique_constraint_auto_cols():
|
||||
context = op_fixture()
|
||||
from sqlalchemy import event, DateTime
|
||||
|
||||
@event.listens_for(Table, "after_parent_attach")
|
||||
def _table_standard_cols(table, metadata):
|
||||
table.append_column(Column('created_at', DateTime))
|
||||
|
||||
try:
|
||||
op.create_unique_constraint('uk_test', 't1', ['foo', 'bar'])
|
||||
context.assert_(
|
||||
"ALTER TABLE t1 ADD CONSTRAINT uk_test UNIQUE (foo, bar)"
|
||||
)
|
||||
finally:
|
||||
Table.dispatch._clear()
|
||||
|
||||
def test_drop_constraint():
|
||||
context = op_fixture()
|
||||
op.drop_constraint('foo_bar_bat', 't1')
|
||||
|
||||
Reference in New Issue
Block a user