def mutate(self, app_label, proj_sig): app_sig = proj_sig[app_label] model_sig = app_sig[self.model_name] sql_statements = [] model = MockModel(proj_sig, app_label, self.model_name, model_sig) # Remove any many to many tables. for field_name, field_sig in model_sig['fields'].items(): if field_sig['field_type'] == models.ManyToManyField: field = model._meta.get_field(field_name) m2m_table = field._get_m2m_db_table(model._meta) sql_statements += evolver.delete_table(m2m_table) # Remove the table itself. sql_statements += evolver.delete_table(model._meta.db_table) return sql_statements
def mutate(self, app_label, proj_sig): app_sig = proj_sig[app_label] model_sig = app_sig[self.model_name] sql_statements = [] model = MockModel(proj_sig, app_label, self.model_name, model_sig) # Remove any many to many tables. for field_name, field_sig in model_sig['fields'].items(): if field_sig['field_type'] == models.ManyToManyField: field = model._meta.get_field(field_name) m2m_table = field._get_m2m_db_table(model._meta) sql_statements += evolver.delete_table(m2m_table) # Remove the table itself. sql_statements += evolver.delete_table(model._meta.db_table) return sql_statements
def mutate(self, app_label, proj_sig): app_sig = proj_sig[app_label] model_sig = app_sig[self.model_name] field_sig = model_sig['fields'][self.field_name] model = MockModel(proj_sig, app_label, self.model_name, model_sig) # Temporarily remove field_type from the field signature # so that we can create a field field_type = field_sig.pop('field_type') field = create_field(proj_sig, self.field_name, field_type, field_sig) field_sig['field_type'] = field_type if field_type == models.ManyToManyField: sql_statements = evolver.delete_table(field._get_m2m_db_table(model._meta)) else: sql_statements = evolver.delete_column(model, field) return sql_statements
def mutate(self, app_label, proj_sig): app_sig = proj_sig[app_label] model_sig = app_sig[self.model_name] field_sig = model_sig['fields'][self.field_name] model = MockModel(proj_sig, app_label, self.model_name, model_sig) # Temporarily remove field_type from the field signature # so that we can create a field field_type = field_sig.pop('field_type') field = create_field(proj_sig, self.field_name, field_type, field_sig) field_sig['field_type'] = field_type if field_type == models.ManyToManyField: sql_statements = evolver.delete_table( field._get_m2m_db_table(model._meta)) else: sql_statements = evolver.delete_column(model, field) return sql_statements