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