diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-17 19:08:36 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-17 19:08:36 +0000 |
commit | 2019974544e9fbfa1a5ccf215856275d0091b12d (patch) | |
tree | 7244fadb847a62578ad07a237e7ef7ca7b342dc8 /lib/sqlalchemy/schema.py | |
parent | b5bb6bb06d33b03c9af61eb869aab84b2a99a792 (diff) | |
download | sqlalchemy-2019974544e9fbfa1a5ccf215856275d0091b12d.tar.gz |
- fixes to tometadata() operation to propigate Constraints at column and table level
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r-- | lib/sqlalchemy/schema.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index d0863800b..debde5754 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -459,7 +459,7 @@ class Column(SchemaItem, sql._ColumnClause): def copy(self): """creates a copy of this Column, unitialized. this is used in Table.tometadata.""" - return Column(self.name, self.type, self.default, key = self.key, primary_key = self.primary_key, nullable = self.nullable, _is_oid = self._is_oid, case_sensitive=self._case_sensitive_setting, quote=self.quote) + return Column(self.name, self.type, self.default, key = self.key, primary_key = self.primary_key, nullable = self.nullable, _is_oid = self._is_oid, case_sensitive=self._case_sensitive_setting, quote=self.quote, *[c.copy() for c in self.constraints]) def _make_proxy(self, selectable, name = None): """create a "proxy" for this column. @@ -712,7 +712,9 @@ class CheckConstraint(Constraint): def _set_parent(self, parent): self.parent = parent parent.constraints.add(self) - + def copy(self): + return CheckConstraint(self.sqltext, name=self.name) + class ForeignKeyConstraint(Constraint): """table-level foreign key constraint, represents a colleciton of ForeignKey objects.""" def __init__(self, columns, refcolumns, name=None, onupdate=None, ondelete=None, use_alter=False): @@ -779,7 +781,9 @@ class UniqueConstraint(Constraint): self.columns.add(col) def accept_schema_visitor(self, visitor, traverse=True): visitor.visit_unique_constraint(self) - + def copy(self): + return UniqueConstraint(name=self.name, *self.__colnames) + class Index(SchemaItem): """Represents an index of columns from a database table """ |