if result and result[0] == 'v':
cr.execute('DROP view %s' % (model_pool._table,))
elif result and result[0] == 'r':
- cr.execute('DROP TABLE %s' % (model_pool._table,))
+ cr.execute('DROP TABLE %s CASCADE' % (model_pool._table,))
return True
def unlink(self, cr, user, ids, context=None):
def _m2m_raise_or_create_relation(self, cr, f):
m2m_tbl, col1, col2 = f._sql_names(self)
- self._save_relation_table(cr, m2m_tbl)
+ # do not create relations for custom fields as they do not belong to a module
+ # they will be automatically removed when dropping the corresponding ir.model.field
+ if not f.string.startswith('x_'):
+ self._save_relation_table(cr, m2m_tbl)
cr.execute("SELECT relname FROM pg_class WHERE relkind IN ('r','v') AND relname=%s", (m2m_tbl,))
if not cr.dictfetchall():
if not self.pool.get(f._obj):