== literal_column("'%s'" % version)
)
)
- if not self.context.as_sql and ret.rowcount != 1:
+ if (
+ not self.context.as_sql
+ and self.context.dialect.supports_sane_rowcount
+ and ret.rowcount != 1
+ ):
raise util.CommandError(
"Online migration expected to match one "
"row when deleting '%s' in '%s'; "
== literal_column("'%s'" % from_)
)
)
- if not self.context.as_sql and ret.rowcount != 1:
+ if (
+ not self.context.as_sql
+ and self.context.dialect.supports_sane_rowcount
+ and ret.rowcount != 1
+ ):
raise util.CommandError(
"Online migration expected to match one "
"row when updating '%s' to '%s' in '%s'; "
_up("x", "b"),
)
+ def test_update_no_match_no_sane_rowcount(self):
+ self.updater.update_to_step(_up(None, "a", True))
+ self.updater.heads.add("x")
+ with mock.patch.object(
+ self.connection.dialect, "supports_sane_rowcount", False
+ ):
+ self.updater.update_to_step(_up("x", "b"))
+
def test_update_multi_match(self):
self.connection.execute(version_table.insert(), version_num="a")
self.connection.execute(version_table.insert(), version_num="a")
_up("a", "b"),
)
+ def test_update_multi_match_no_sane_rowcount(self):
+ self.connection.execute(version_table.insert(), version_num="a")
+ self.connection.execute(version_table.insert(), version_num="a")
+
+ self.updater.heads.add("a")
+ with mock.patch.object(
+ self.connection.dialect, "supports_sane_rowcount", False
+ ):
+ self.updater.update_to_step(_up("a", "b"))
+
def test_delete_no_match(self):
self.updater.update_to_step(_up(None, "a", True))
_down("x", None, True),
)
+ def test_delete_no_matchno_sane_rowcount(self):
+ self.updater.update_to_step(_up(None, "a", True))
+
+ self.updater.heads.add("x")
+ with mock.patch.object(
+ self.connection.dialect, "supports_sane_rowcount", False
+ ):
+ self.updater.update_to_step(_down("x", None, True))
+
def test_delete_multi_match(self):
self.connection.execute(version_table.insert(), version_num="a")
self.connection.execute(version_table.insert(), version_num="a")
self.updater.update_to_step,
_down("a", None, True),
)
+
+ def test_delete_multi_match_no_sane_rowcount(self):
+ self.connection.execute(version_table.insert(), version_num="a")
+ self.connection.execute(version_table.insert(), version_num="a")
+
+ self.updater.heads.add("a")
+ with mock.patch.object(
+ self.connection.dialect, "supports_sane_rowcount", False
+ ):
+ self.updater.update_to_step(_down("a", None, True))