diff options
author | Tim Graham <timograham@gmail.com> | 2020-08-22 14:32:01 -0400 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-08-24 14:32:07 +0200 |
commit | ea880ec233ecd61c20b74eb7d6d1cf1223897179 (patch) | |
tree | 622df7f048970ed97fec1ce67781059039563535 /django/db/backends/postgresql/schema.py | |
parent | b3124215117541a86b0740314ef991e1d521da69 (diff) | |
download | django-ea880ec233ecd61c20b74eb7d6d1cf1223897179.tar.gz |
Fixed #24533 -- Dropped PostgreSQL sequence and Oracle identity when migrating away from AutoField.
Diffstat (limited to 'django/db/backends/postgresql/schema.py')
-rw-r--r-- | django/db/backends/postgresql/schema.py | 13 |
1 files changed, 13 insertions, 0 deletions
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) |