diff --git a/qiita_db/metadata_template/base_metadata_template.py b/qiita_db/metadata_template/base_metadata_template.py index 07a164f90..a4de41ad3 100644 --- a/qiita_db/metadata_template/base_metadata_template.py +++ b/qiita_db/metadata_template/base_metadata_template.py @@ -619,9 +619,15 @@ def _common_delete_sample_steps(self, sample_name): self._table_name(self._id)) qdb.sql_connection.TRN.add(sql, [sample_name]) + sql = 'ALTER TABLE qiita.{0} DISABLE TRIGGER ALL'.format( + self._table) + qdb.sql_connection.TRN.add(sql) sql = "DELETE FROM qiita.{0} WHERE sample_id=%s AND {1}=%s".format( self._table, self._id_column) qdb.sql_connection.TRN.add(sql, [sample_name, self.id]) + sql = 'ALTER TABLE qiita.{0} ENABLE TRIGGER ALL'.format( + self._table) + qdb.sql_connection.TRN.add(sql) qdb.sql_connection.TRN.execute() @@ -649,9 +655,15 @@ def delete_column(self, column_name): raise qdb.exceptions.QiitaDBOperationNotPermittedError( '%s cannot be deleted' % column_name) with qdb.sql_connection.TRN: + sql = ('ALTER TABLE qiita.%s%d DISABLE TRIGGER ALL' % ( + self._table_prefix, self._id)) + qdb.sql_connection.TRN.add(sql) sql = 'ALTER TABLE qiita.%s%d DROP COLUMN %s' % ( self._table_prefix, self._id, column_name) qdb.sql_connection.TRN.add(sql) + sql = ('ALTER TABLE qiita.%s%d ENABLE TRIGGER ALL' % ( + self._table_prefix, self._id)) + qdb.sql_connection.TRN.add(sql) qdb.sql_connection.TRN.execute() self.generate_files() diff --git a/qiita_db/metadata_template/prep_template.py b/qiita_db/metadata_template/prep_template.py index d24e02c76..f590179fd 100644 --- a/qiita_db/metadata_template/prep_template.py +++ b/qiita_db/metadata_template/prep_template.py @@ -256,14 +256,22 @@ def delete(cls, id_): qdb.sql_connection.TRN.add(sql, args) # Remove the row from study_prep_template + sql = 'ALTER TABLE qiita.study_prep_template DISABLE TRIGGER ALL' + qdb.sql_connection.TRN.add(sql) sql = """DELETE FROM qiita.study_prep_template WHERE {0} = %s""".format(cls._id_column) qdb.sql_connection.TRN.add(sql, args) + sql = 'ALTER TABLE qiita.study_prep_template ENABLE TRIGGER ALL' + qdb.sql_connection.TRN.add(sql) # Remove the row from prep_template + sql = 'ALTER TABLE qiita.prep_template DISABLE TRIGGER ALL' + qdb.sql_connection.TRN.add(sql) sql = "DELETE FROM qiita.prep_template WHERE {0} = %s".format( cls._id_column) qdb.sql_connection.TRN.add(sql, args) + sql = 'ALTER TABLE qiita.prep_template ENABLE TRIGGER ALL' + qdb.sql_connection.TRN.add(sql) qdb.sql_connection.TRN.execute() diff --git a/qiita_db/metadata_template/sample_template.py b/qiita_db/metadata_template/sample_template.py index e1c7dc4dd..7afd77178 100644 --- a/qiita_db/metadata_template/sample_template.py +++ b/qiita_db/metadata_template/sample_template.py @@ -135,9 +135,15 @@ def delete(cls, id_): sql = "DROP TABLE qiita.{0}".format(table_name) qdb.sql_connection.TRN.add(sql) + sql = 'ALTER TABLE qiita.{0} DISABLE TRIGGER ALL'.format( + cls._table) + qdb.sql_connection.TRN.add(sql) sql = "DELETE FROM qiita.{0} WHERE {1} = %s".format( cls._table, cls._id_column) qdb.sql_connection.TRN.add(sql, args) + sql = 'ALTER TABLE qiita.{0} ENABLE TRIGGER ALL'.format( + cls._table) + qdb.sql_connection.TRN.add(sql) qdb.sql_connection.TRN.execute()