Blob Blame History Raw
Combination of 0.8 compat patches.

All are currently after 0.7.2 tag at:
https://github.com/stackforge/sqlalchemy-migrate

Also included is this adjustment:
https://review.openstack.org/#/c/47847/

diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/tests/changeset/test_changeset.py sqlalchemy-migrate-0.7.2/migrate/tests/changeset/test_changeset.py
--- sqlalchemy-migrate-0.7.2.orig/migrate/tests/changeset/test_changeset.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2/migrate/tests/changeset/test_changeset.py	2013-03-11 11:45:29.066638792 +0000
@@ -560,7 +560,7 @@
             self.table.drop()
         try:
             self.table.create()
-        except sqlalchemy.exceptions.SQLError, e:
+        except sqlalchemy.exc.SQLError, e:
             # SQLite: database schema has changed
             if not self.url.startswith('sqlite://'):
                 raise
@@ -569,7 +569,7 @@
         if self.table.exists():
             try:
                 self.table.drop(self.engine)
-            except sqlalchemy.exceptions.SQLError,e:
+            except sqlalchemy.exc.SQLError,e:
                 # SQLite: database schema has changed
                 if not self.url.startswith('sqlite://'):
                     raise
diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/versioning/schema.py sqlalchemy-migrate-0.7.2/migrate/versioning/schema.py
--- sqlalchemy-migrate-0.7.2.orig/migrate/versioning/schema.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2/migrate/versioning/schema.py	2013-03-11 11:44:45.769557705 +0000
@@ -7,7 +7,7 @@
 from sqlalchemy import (Table, Column, MetaData, String, Text, Integer,
     create_engine)
 from sqlalchemy.sql import and_
-from sqlalchemy import exceptions as sa_exceptions
+from sqlalchemy import exc as sa_exceptions
 from sqlalchemy.sql import bindparam
 
 from migrate import exceptions
diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/changeset/ansisql.py sqlalchemy-migrate-0.7.2/migrate/changeset/ansisql.py
--- sqlalchemy-migrate-0.7.2.orig/migrate/changeset/ansisql.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2/migrate/changeset/ansisql.py	2013-09-23 11:34:18.656844658 +0000
@@ -171,8 +171,8 @@
                     self.preparer.quote(
                         self._validate_identifier(
                             index.new_name, True), index.quote)))
-        else:
-            # SA >= 0.6.5
+        elif hasattr(self, '_index_identifier'):
+            # SA >= 0.6.5, < 0.8
             self.append("ALTER INDEX %s RENAME TO %s" % (
                     self.preparer.quote(
                         self._index_identifier(
@@ -180,6 +180,22 @@
                     self.preparer.quote(
                         self._index_identifier(
                             index.new_name), index.quote)))
+        else:
+            # SA >= 0.8
+            class NewName(object):
+                """Map obj.name -> obj.new_name"""
+                def __init__(self, index):
+                    self.name = index.new_name
+                    self._obj = index
+
+                def __getattr__(self, attr):
+                    if attr == 'name':
+                        return getattr(self, attr)
+                    return getattr(self._obj, attr)
+
+            self.append("ALTER INDEX %s RENAME TO %s" % (
+                    self._prepared_index_name(index),
+                    self._prepared_index_name(NewName(index))))
         self.execute()
 
     def visit_column(self, delta):
diff -Naur sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/fixture/database.py sqlalchemy-migrate-0.7.2.reflect/migrate/tests/fixture/database.py
--- sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/fixture/database.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2.reflect/migrate/tests/fixture/database.py	2013-09-23 12:20:26.022608233 +0000
@@ -128,7 +128,8 @@
     def _setup(self, url):
         self._connect(url)
         # make sure there are no tables lying around
-        meta = MetaData(self.engine, reflect=True)
+        meta = MetaData(self.engine)
+        meta.reflect()
         meta.drop_all()
 
     def _teardown(self):
diff -Naur sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/versioning/test_genmodel.py sqlalchemy-migrate-0.7.2.reflect/migrate/tests/versioning/test_genmodel.py
--- sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/versioning/test_genmodel.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2.reflect/migrate/tests/versioning/test_genmodel.py	2013-09-23 12:21:42.254900961 +0000
@@ -18,9 +18,11 @@
 
     def _setup(self, url):
         super(TestSchemaDiff, self)._setup(url)
-        self.meta = MetaData(self.engine, reflect=True)
+        self.meta = MetaData(self.engine)
+        self.meta.reflect()
         self.meta.drop_all()  # in case junk tables are lying around in the test database
-        self.meta = MetaData(self.engine, reflect=True)  # needed if we just deleted some tables
+        self.meta = MetaData(self.engine)  # needed if we just deleted some tables
+        self.meta.reflect()
         self.table = Table(self.table_name, self.meta,
             Column('id',Integer(), primary_key=True),
             Column('name', UnicodeText()),
@@ -29,7 +31,8 @@
 
     def _teardown(self):
         if self.table.exists():
-            self.meta = MetaData(self.engine, reflect=True)
+            self.meta = MetaData(self.engine)
+            self.meta.reflect()
             self.meta.drop_all()
         super(TestSchemaDiff, self)._teardown()
 
diff -Naur sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/versioning/test_shell.py sqlalchemy-migrate-0.7.2.reflect/migrate/tests/versioning/test_shell.py
--- sqlalchemy-migrate-0.7.2.orig_reflect/migrate/tests/versioning/test_shell.py	2013-09-11 23:46:46.288846726 +0000
+++ sqlalchemy-migrate-0.7.2.reflect/migrate/tests/versioning/test_shell.py	2013-09-23 12:20:41.229666598 +0000
@@ -461,7 +461,7 @@
         old_model_module = 'migrate.tests.fixture.models:meta_old_rundiffs'
 
         # Create empty repository.
-        self.meta = MetaData(self.engine, reflect=True)
+        self.meta = MetaData(self.engine)
         self.meta.reflect()
         self.meta.drop_all()  # in case junk tables are lying around in the test database
 
diff -Naur sqlalchemy-migrate-0.7.2.orig_reflect/migrate/versioning/schemadiff.py sqlalchemy-migrate-0.7.2.reflect/migrate/versioning/schemadiff.py
--- sqlalchemy-migrate-0.7.2.orig_reflect/migrate/versioning/schemadiff.py	2011-10-28 15:11:43.000000000 +0000
+++ sqlalchemy-migrate-0.7.2.reflect/migrate/versioning/schemadiff.py	2013-09-23 12:20:06.302532576 +0000
@@ -16,7 +16,8 @@
     :return: object which will evaluate to :keyword:`True` if there \
       are differences else :keyword:`False`.
     """
-    db_metadata = sqlalchemy.MetaData(engine, reflect=True)
+    db_metadata = sqlalchemy.MetaData(engine)
+    db_metadata.reflect()
 
     # sqlite will include a dynamically generated 'sqlite_sequence' table if
     # there are autoincrement sequences in the database; this should not be