F. Gabriel Gosselin  committed 577f264

Moved debug statement in generic to more useful place (remove dry run output)
Added more check to invalidate_table_constraints to avoid KeyError
Forced delete_table to invalidate through MySQL to clear lingering constraints

  • Participants
  • Parent commits 712d1fc
  • Branches default

Comments (0)

Files changed (2)

File south/db/

         if self.debug:
             print "   = %s" % sql, params
-        get_logger().debug('south execute "%s" with params "%s"' % (sql, params))
         if self.dry_run:
             return []
+        get_logger().debug('execute "%s" with params "%s"' % (sql, params))
             cursor.execute(sql, params)
         except DatabaseError, e:

File south/db/

         db_name = self._get_setting('NAME')
         if db_name in self._constraint_cache:
             del self._constraint_cache[db_name]
+        if db_name in self._reverse_cache:
             del self._reverse_cache[db_name]
+        if db_name in self._constraint_references:
             del self._constraint_references[db_name]
         return func(self, table, *args, **opts)
     return _cache_clear
         super(DatabaseOperations, self).rename_table(old_table_name,
+    @invalidate_table_constraints
+    def delete_table(self, table_name):
+        super(DatabaseOperations, self).delete_table(table_name)
     def _lookup_constraint_references(self, table_name, cname):
         Provided an existing table and constraint, returns tuple of (foreign