Database update to 2.5 fails #2255

Closed
opened 2025-12-29 17:24:10 +01:00 by adam · 2 comments
Owner

Originally created by @pubyun on GitHub (Jan 3, 2019).

Environment

  • Python version: 3.5.3
  • NetBox version: v2.5.2

Steps to Reproduce

run ./upgrade.sh to upgrade from v2.4.9 to v2.5.2

Expected Behavior

it will upgrade smoothly

Observed Behavior

Applying dcim.0066_cables...
Adding console connections... 0 cables created
Adding power connections... 0 cables created
Adding interface connections... 346 cables created
OK
Applying circuits.0013_cables...
Adding circuit terminations... Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
psycopg2.IntegrityError: duplicate key value violates unique constraint "dcim_cable_termination_b_type_id_termination_b_id_057fc21f_uniq"
DETAIL: Key (termination_b_type_id, termination_b_id)=(30, 687) already exists.

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

Traceback (most recent call last):
File "netbox/manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/init.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/init.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 353, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/migrate.py", line 203, in handle
fake_initial=fake_initial,
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration
state = migration.apply(state, schema_editor)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/operations/special.py", line 190, in database_forwards
self.code(from_state.apps, schema_editor)
File "/opt/netbox/netbox/circuits/migrations/0013_cables.py", line 33, in circuit_terminations_to_cables
status=CONNECTION_STATUS_CONNECTED
File "/usr/local/lib/python3.5/dist-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 413, in create
obj.save(force_insert=True, using=self.db)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 718, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 748, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 831, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 869, in _do_insert
using=using, raw=raw)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 1136, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python3.5/dist-packages/django/db/models/sql/compiler.py", line 1289, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 89, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 89, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "dcim_cable_termination_b_type_id_termination_b_id_057fc21f_uniq"
DETAIL: Key (termination_b_type_id, termination_b_id)=(30, 687) already exists.

Originally created by @pubyun on GitHub (Jan 3, 2019). ### Environment * Python version: 3.5.3 * NetBox version: v2.5.2 ### Steps to Reproduce run ./upgrade.sh to upgrade from v2.4.9 to v2.5.2 ### Expected Behavior it will upgrade smoothly ### Observed Behavior Applying dcim.0066_cables... Adding console connections... 0 cables created Adding power connections... 0 cables created Adding interface connections... 346 cables created OK Applying circuits.0013_cables... Adding circuit terminations... Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) psycopg2.IntegrityError: duplicate key value violates unique constraint "dcim_cable_termination_b_type_id_termination_b_id_057fc21f_uniq" DETAIL: Key (termination_b_type_id, termination_b_id)=(30, 687) already exists. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "netbox/manage.py", line 10, in execute_from_command_line(sys.argv) File "/usr/local/lib/python3.5/dist-packages/django/core/management/init.py", line 381, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.5/dist-packages/django/core/management/init.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 316, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 353, in execute output = self.handle(*args, **options) File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 83, in wrapped res = handle_func(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/migrate.py", line 203, in handle fake_initial=fake_initial, File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration state = migration.apply(state, schema_editor) File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/migration.py", line 124, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/usr/local/lib/python3.5/dist-packages/django/db/migrations/operations/special.py", line 190, in database_forwards self.code(from_state.apps, schema_editor) File "/opt/netbox/netbox/circuits/migrations/0013_cables.py", line 33, in circuit_terminations_to_cables status=CONNECTION_STATUS_CONNECTED File "/usr/local/lib/python3.5/dist-packages/django/db/models/manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 413, in create obj.save(force_insert=True, using=self.db) File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 718, in save force_update=force_update, update_fields=update_fields) File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 748, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 831, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 869, in _do_insert using=using, raw=raw) File "/usr/local/lib/python3.5/dist-packages/django/db/models/manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 1136, in _insert return query.get_compiler(using=using).execute_sql(return_id) File "/usr/local/lib/python3.5/dist-packages/django/db/models/sql/compiler.py", line 1289, in execute_sql cursor.execute(sql, params) File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 68, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers return executor(sql, params, many, context) File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 89, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) return self.cursor.execute(sql, params) File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 89, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) django.db.utils.IntegrityError: duplicate key value violates unique constraint "dcim_cable_termination_b_type_id_termination_b_id_057fc21f_uniq" DETAIL: Key (termination_b_type_id, termination_b_id)=(30, 687) already exists.
adam closed this issue 2025-12-29 17:24:10 +01:00
Author
Owner

@iDemonix commented on GitHub (Jan 3, 2019):

I also have a problem, but with a different error, from 2.4.4 to 2.5.2:

Applying database migrations (python3 netbox/manage.py migrate)...
Traceback (most recent call last):
  File "netbox/manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/usr/lib/python3.4/site-packages/django/core/management/__init__.py", line 11, in <module>
    from django.conf import settings
  File "/usr/lib/python3.4/site-packages/django/conf/__init__.py", line 18, in <module>
    from django.utils.functional import LazyObject, empty
  File "/usr/lib/python3.4/site-packages/django/utils/functional.py", line 12
    return _curried_func(*args, *moreargs, **{**kwargs, **morekwargs})
                                ^
SyntaxError: invalid syntax
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...
Traceback (most recent call last):
  File "netbox/manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/usr/lib/python3.4/site-packages/django/core/management/__init__.py", line 11, in <module>
    from django.conf import settings
  File "/usr/lib/python3.4/site-packages/django/conf/__init__.py", line 18, in <module>
    from django.utils.functional import LazyObject, empty
  File "/usr/lib/python3.4/site-packages/django/utils/functional.py", line 12
    return _curried_func(*args, *moreargs, **{**kwargs, **morekwargs})
                                ^
SyntaxError: invalid syntax
@iDemonix commented on GitHub (Jan 3, 2019): I also have a problem, but with a different error, from 2.4.4 to 2.5.2: ``` Applying database migrations (python3 netbox/manage.py migrate)... Traceback (most recent call last): File "netbox/manage.py", line 8, in <module> from django.core.management import execute_from_command_line File "/usr/lib/python3.4/site-packages/django/core/management/__init__.py", line 11, in <module> from django.conf import settings File "/usr/lib/python3.4/site-packages/django/conf/__init__.py", line 18, in <module> from django.utils.functional import LazyObject, empty File "/usr/lib/python3.4/site-packages/django/utils/functional.py", line 12 return _curried_func(*args, *moreargs, **{**kwargs, **morekwargs}) ^ SyntaxError: invalid syntax Collecting static files (python3 netbox/manage.py collectstatic --no-input)... Traceback (most recent call last): File "netbox/manage.py", line 8, in <module> from django.core.management import execute_from_command_line File "/usr/lib/python3.4/site-packages/django/core/management/__init__.py", line 11, in <module> from django.conf import settings File "/usr/lib/python3.4/site-packages/django/conf/__init__.py", line 18, in <module> from django.utils.functional import LazyObject, empty File "/usr/lib/python3.4/site-packages/django/utils/functional.py", line 12 return _curried_func(*args, *moreargs, **{**kwargs, **morekwargs}) ^ SyntaxError: invalid syntax ```
Author
Owner

@jeremystretch commented on GitHub (Jan 3, 2019):

There is a duplicate circuit termination defined somehow in your database. You can view the offending object at /api/circuits/circuit-terminations/687/. Try deleting it and re-applying the migrations.

If you'd like further assistance, please post to the mailing list.

@jeremystretch commented on GitHub (Jan 3, 2019): There is a duplicate circuit termination defined somehow in your database. You can view the offending object at `/api/circuits/circuit-terminations/687/`. Try deleting it and re-applying the migrations. If you'd like further assistance, please post to the [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#2255