summaryrefslogtreecommitdiff
path: root/migrate/versioning/script/sql.py
diff options
context:
space:
mode:
authoriElectric <unknown>2009-07-08 22:03:00 +0200
committeriElectric <unknown>2009-07-08 22:03:00 +0200
commit67af81806d96f4071d2ac6bc0d956b4e2e8879dc (patch)
tree5e566be9a24cbece0cfa6a0c52a03d6d01e7cede /migrate/versioning/script/sql.py
parent286a912e34823483ae0fd767721fb5221d7b7ea1 (diff)
downloadsqlalchemy-migrate-67af81806d96f4071d2ac6bc0d956b4e2e8879dc.tar.gz
add tests for plain API, fixed some small bugs
Diffstat (limited to 'migrate/versioning/script/sql.py')
-rw-r--r--migrate/versioning/script/sql.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/migrate/versioning/script/sql.py b/migrate/versioning/script/sql.py
index 851fdf2..97dc505 100644
--- a/migrate/versioning/script/sql.py
+++ b/migrate/versioning/script/sql.py
@@ -7,8 +7,16 @@ from migrate.versioning.script import base
class SqlScript(base.BaseScript):
"""A file containing plain SQL statements."""
+ @classmethod
+ def create(cls, path, **opts):
+ """Create an empty migration script at specified path
+
+ :returns: :class:`SqlScript instance <migrate.versioning.script.sql.SqlScript>`"""
+ cls.require_notfound(path)
+ open(path, "w").close()
+
# TODO: why is step parameter even here?
- def run(self, engine, step=None):
+ def run(self, engine, step=None, executemany=True):
"""Runs SQL script through raw dbapi execute call"""
text = self.source()
# Don't rely on SA's autocommit here
@@ -21,7 +29,7 @@ class SqlScript(base.BaseScript):
# HACK: SQLite doesn't allow multiple statements through
# its execute() method, but it provides executescript() instead
dbapi = conn.engine.raw_connection()
- if getattr(dbapi, 'executescript', None):
+ if executemany and getattr(dbapi, 'executescript', None):
dbapi.executescript(text)
else:
conn.execute(text)