summaryrefslogtreecommitdiff
path: root/django/db/backends/postgresql/schema.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2020-08-22 14:32:01 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-08-24 14:32:07 +0200
commitea880ec233ecd61c20b74eb7d6d1cf1223897179 (patch)
tree622df7f048970ed97fec1ce67781059039563535 /django/db/backends/postgresql/schema.py
parentb3124215117541a86b0740314ef991e1d521da69 (diff)
downloaddjango-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.py13
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)