Error upgrading from 4.1.7 to any 4.x version #11750

Closed
opened 2025-12-29 21:49:26 +01:00 by adam · 1 comment
Owner

Originally created by @abdulet on GitHub (Oct 20, 2025).

NetBox Edition

NetBox Community

NetBox Version

v4.1.7

Python Version

3.10

Steps to Reproduce

running ./upgrade.sh from 4.1.7 to any 4.x version, including 4.4.4. I get the error message:
django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey"
DETAIL: Key (id)=(622) already exists.

Expected Behavior

a clean upgrade to the target version

Observed Behavior

Applying database migrations (python3 netbox/manage.py migrate)...
Operations to perform:
Apply all migrations: account, auth, circuits, contenttypes, core, dcim, django_rq, extras, ipam, sessions, social_django, taggit, tenancy, users, virtualization, vpn, wireless
Running migrations:
Applying extras.0122_charfield_null_choices...Traceback (most recent call last):
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django_prometheus/db/common.py", line 69, in execute
return super().execute(*args, **kwargs)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/psycopg/cursor.py", line 97, in execute
raise ex.with_traceback(None)
psycopg.errors.UniqueViolation: duplicate key value violates unique constraint "django_migrations_pkey"
DETAIL: Key (id)=(622) already exists.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/opt/netbox-4.2.5/netbox/manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/init.py", line 442, in execute_from_command_line
utility.execute()
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/init.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 107, in wrapper
res = handle_func(*args, **kwargs)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 357, in handle
post_migrate_state = executor.migrate(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 135, in migrate
state = self._migrate_all_forwards(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 257, in apply_migration
self.record_migration(migration)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 272, in record_migration
self.recorder.record_applied(migration.app_label, migration.name)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 102, in record_applied
self.migration_qs.create(app=app, name=name)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/query.py", line 679, in create
obj.save(force_insert=True, using=self.db)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 892, in save
self.save_base(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 998, in save_base
updated = self._save_table(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 1161, in _save_table
results = self._do_insert(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 1202, in _do_insert
return manager._insert(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/query.py", line 1847, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1836, in execute_sql
cursor.execute(sql, params)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 79, in execute
return self._execute_with_wrappers(
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/utils.py", line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django_prometheus/db/common.py", line 69, in execute
return super().execute(*args, **kwargs)
File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/psycopg/cursor.py", line 97, in execute
raise ex.with_traceback(None)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey"
DETAIL: Key (id)=(622) already exists.

Originally created by @abdulet on GitHub (Oct 20, 2025). ### NetBox Edition NetBox Community ### NetBox Version v4.1.7 ### Python Version 3.10 ### Steps to Reproduce running ./upgrade.sh from 4.1.7 to any 4.x version, including 4.4.4. I get the error message: django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey" DETAIL: Key (id)=(622) already exists. ### Expected Behavior a clean upgrade to the target version ### Observed Behavior Applying database migrations (python3 netbox/manage.py migrate)... Operations to perform: Apply all migrations: account, auth, circuits, contenttypes, core, dcim, django_rq, extras, ipam, sessions, social_django, taggit, tenancy, users, virtualization, vpn, wireless Running migrations: Applying extras.0122_charfield_null_choices...Traceback (most recent call last): File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 105, in _execute return self.cursor.execute(sql, params) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django_prometheus/db/common.py", line 69, in execute return super().execute(*args, **kwargs) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/psycopg/cursor.py", line 97, in execute raise ex.with_traceback(None) psycopg.errors.UniqueViolation: duplicate key value violates unique constraint "django_migrations_pkey" DETAIL: Key (id)=(622) already exists. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/opt/netbox-4.2.5/netbox/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 413, in run_from_argv self.execute(*args, **cmd_options) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 459, in execute output = self.handle(*args, **options) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/base.py", line 107, in wrapper res = handle_func(*args, **kwargs) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 357, in handle post_migrate_state = executor.migrate( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 135, in migrate state = self._migrate_all_forwards( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards state = self.apply_migration( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 257, in apply_migration self.record_migration(migration) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 272, in record_migration self.recorder.record_applied(migration.app_label, migration.name) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 102, in record_applied self.migration_qs.create(app=app, name=name) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/query.py", line 679, in create obj.save(force_insert=True, using=self.db) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 892, in save self.save_base( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 998, in save_base updated = self._save_table( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 1161, in _save_table results = self._do_insert( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/base.py", line 1202, in _do_insert return manager._insert( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/query.py", line 1847, in _insert return query.get_compiler(using=using).execute_sql(returning_fields) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1836, in execute_sql cursor.execute(sql, params) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 79, in execute return self._execute_with_wrappers( File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers return executor(sql, params, many, context) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 100, in _execute with self.db.wrap_database_errors: File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 105, in _execute return self.cursor.execute(sql, params) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/django_prometheus/db/common.py", line 69, in execute return super().execute(*args, **kwargs) File "/opt/netbox-4.2.5/venv/lib/python3.10/site-packages/psycopg/cursor.py", line 97, in execute raise ex.with_traceback(None) django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey" DETAIL: Key (id)=(622) already exists.
adam added the netbox label 2025-12-29 21:49:26 +01:00
adam closed this issue 2025-12-29 21:49:26 +01:00
Author
Owner

@abdulet commented on GitHub (Oct 21, 2025):

Solved after running:
sudo -u postgres psql netbox SELECT setval('django_migrations_id_seq', (SELECT MAX(id) FROM django_migrations)+1); \q

downgrading to previous version and retrying the upgrade process.
It works

@abdulet commented on GitHub (Oct 21, 2025): Solved after running: ` sudo -u postgres psql netbox SELECT setval('django_migrations_id_seq', (SELECT MAX(id) FROM django_migrations)+1); \q ` downgrading to previous version and retrying the upgrade process. It works
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#11750