From ea880ec233ecd61c20b74eb7d6d1cf1223897179 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 22 Aug 2020 14:32:01 -0400 Subject: Fixed #24533 -- Dropped PostgreSQL sequence and Oracle identity when migrating away from AutoField. --- django/db/backends/postgresql/schema.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'django/db/backends/postgresql/schema.py') diff --git a/django/db/backends/postgresql/schema.py b/django/db/backends/postgresql/schema.py index e77915b3b1..b2442f80b7 100644 --- a/django/db/backends/postgresql/schema.py +++ b/django/db/backends/postgresql/schema.py @@ -155,6 +155,19 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): ), ], ) + elif old_field.db_parameters(connection=self.connection)['type'] in serial_fields_map: + # Drop the sequence if migrating away from AutoField. + column = strip_quotes(new_field.column) + sequence_name = '%s_%s_seq' % (table, column) + fragment, _ = super()._alter_column_type_sql(model, old_field, new_field, new_type) + return fragment, [ + ( + self.sql_delete_sequence % { + 'sequence': self.quote_name(sequence_name), + }, + [], + ), + ] else: return super()._alter_column_type_sql(model, old_field, new_field, new_type) -- cgit v1.2.1