import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): """ Tables cannot have data deleted from them and be altered in a single transaction, but we need the DELETEs to be atomic together. So we set atomic=False for the migration in general, and run the DELETEs in one transaction, and AlterField in another. """ atomic = False dependencies = [ ("zerver", "0231_add_archive_transaction_model"), ] operations = [ migrations.RunSQL( """ BEGIN; DELETE FROM zerver_archivedusermessage; DELETE FROM zerver_archivedreaction; DELETE FROM zerver_archivedsubmessage; DELETE FROM zerver_archivedattachment_messages; DELETE FROM zerver_archivedattachment; DELETE FROM zerver_archivedmessage; DELETE FROM zerver_archivetransaction; COMMIT; """, elidable=True, ), migrations.AlterField( model_name="archivedmessage", name="archive_transaction", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="zerver.ArchiveTransaction" ), ), ]