diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-09 23:58:07 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-09 23:58:07 +0000 |
| commit | dde6a5aac085c86d4905c2514e7d0ab8f8b290d0 (patch) | |
| tree | 1c2cad831da5b6f6d7d49ef646da6c0dce0dcd5e /lib/sqlalchemy/schema.py | |
| parent | 4b73f0859fb5e1790f8d1bc416b88cda8185856e (diff) | |
| download | sqlalchemy-dde6a5aac085c86d4905c2514e7d0ab8f8b290d0.tar.gz | |
all create()/drop() calls have a keyword argument of "connectable".
"engine" is deprecated. fixes [ticket:255]
Diffstat (limited to 'lib/sqlalchemy/schema.py')
| -rw-r--r-- | lib/sqlalchemy/schema.py | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 002ff2d36..8577b24e1 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -717,15 +717,15 @@ class Index(SchemaItem): % (self.name, column)) self.columns.append(column) - def create(self, engine=None): - if engine is not None: - engine.create(self) + def create(self, connectable=None): + if connectable is not None: + connectable.create(self) else: self.engine.create(self) return self - def drop(self, engine=None): - if engine is not None: - engine.drop(self) + def drop(self, connectable=None): + if connectable is not None: + connectable.drop(self) else: self.engine.drop(self) def accept_schema_visitor(self, visitor): @@ -751,12 +751,26 @@ class MetaData(SchemaItem): def table_iterator(self, reverse=True): return self._sort_tables(self.tables.values(), reverse=reverse) - def create_all(self, engine=None, tables=None): + def create_all(self, connectable=None, tables=None, engine=None): + """create all tables stored in this metadata. + + This will conditionally create tables depending on if they do not yet + exist in the database. + + connectable - a Connectable used to access the database; or use the engine + bound to this MetaData. + + tables - optional list of tables to create + + engine - deprecated argument.""" if not tables: tables = self.tables.values() - if engine is None and self.is_bound(): - engine = self.engine + if connectable is None: + connectable = engine + + if connectable is None and self.is_bound(): + connectable = self.engine def do(conn): e = conn.engine @@ -765,14 +779,28 @@ class MetaData(SchemaItem): if e.dialect.has_table(conn, table.name): continue conn.create(table) - engine.run_callable(do) + connectable.run_callable(do) + + def drop_all(self, connectable=None, tables=None, engine=None): + """drop all tables stored in this metadata. + + This will conditionally drop tables depending on if they currently + exist in the database. + + connectable - a Connectable used to access the database; or use the engine + bound to this MetaData. - def drop_all(self, engine=None, tables=None): + tables - optional list of tables to drop + + engine - deprecated argument.""" if not tables: tables = self.tables.values() - if engine is None and self.is_bound(): - engine = self.engine + if connectable is None: + connectable = engine + + if connectable is None and self.is_bound(): + connectable = self.engine def do(conn): e = conn.engine @@ -780,7 +808,7 @@ class MetaData(SchemaItem): for table in ts: if e.dialect.has_table(conn, table.name): conn.drop(table) - engine.run_callable(do) + connectable.run_callable(do) def _sort_tables(self, tables, reverse=False): import sqlalchemy.sql_util |
