summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/schema.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-08-09 23:58:07 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-08-09 23:58:07 +0000
commitdde6a5aac085c86d4905c2514e7d0ab8f8b290d0 (patch)
tree1c2cad831da5b6f6d7d49ef646da6c0dce0dcd5e /lib/sqlalchemy/schema.py
parent4b73f0859fb5e1790f8d1bc416b88cda8185856e (diff)
downloadsqlalchemy-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.py56
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