УСТАРЕЛО!!!
cd /opt/netbox
ll
sudo git checkout master
sudo git pull origin master
sudo ./upgrade.sh
sudo systemctl restart netbox netbox-rq
Если такая ошибка:
File "/opt/netbox/netbox/dcim/migrations/0145_site_remove_deprecated_fields.py", line 24,
in check_legacy_data
raise DataError(
django.db.utils.DataError: Unable to proceed with deleting contact fields from Site model:
Found 4 sites with legacy contact data. Please ensure all legacy site contact data has been
migrated to contact objects before proceeding. Or, set the NETBOX_DELETE_LEGACY_DATA
environment variable to bypass this safeguard and delete all legacy site contact data
Выполнить это:
sudo NETBOX_DELETE_LEGACY_DATA=1 ./upgrade.sh
ОБНОВЛЕНИЕ!!!
ls -ld /opt/netbox /opt/netbox/.git
git ls-remote --tags https://github.com/netbox-community/netbox.git \
| grep -o 'refs/tags/v[0-9]*\.[0-9]*\.[0-9]*$' \
| tail -n 1 \
| sed 's|refs/tags/||'
cd /opt/netbox && \
sudo git fetch && \
sudo git checkout v4.2.7
Вам может потребоваться запустить git fetch --tags
обновление локального репозитория с использованием удаленного обновленного контента и тегов.
https://github.com/netbox-community/netbox/discussions/12224
ОБНОВЛЕНИЕ!!!
В случае ошибки
Ошибка при обновлении netbox Traceback (most recent call last):
File "/opt/netbox/netbox/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/opt/netbox/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/venv/lib/python3.10/site-packages/django/core/management/base.py", line 416, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute
output = self.handle(*args, **options)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 107, in wrapper
res = handle_func(*args, **kwargs)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 114, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in __init__
self.build_graph()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 89, in applied_migrations
if self.has_table():
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 63, in has_table
with self.connection.cursor() as cursor:
File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 320, in cursor
return self._cursor()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 296, in _cursor
self.ensure_connection()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 279, in ensure_connection
self.connect()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 258, in connect
self.init_connection_state()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 398, in init_connection_state
super().init_connection_state()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 225, in init_connection_state
self.check_database_version_supported()
File "/opt/netbox/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 201, in check_database_version_supported
raise NotSupportedError(
django.db.utils.NotSupportedError: PostgreSQL 14 or later is required (found 12.18).
Ошибка указывает на то, что ваша версия PostgreSQL (12.18) не совместима с текущей версией NetBox. Требуется PostgreSQL 14 или новее.
Вот решение:
# Остановите NetBox и PostgreSQL
sudo systemctl stop netbox netbox-rq
sudo systemctl stop postgresql
# Добавление репозитория с PostgreSQL 14
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
# Установка PostgreSQL 14
sudo apt-get install postgresql-14
# Миграция данных со старой версии
sudo pg_dropcluster --stop 14 main
sudo pg_upgradecluster 12 main 14
# Удаление старой версии (после проверки)
sudo pg_dropcluster --stop 12 main
sudo apt-get remove postgresql-12
cd /opt/netbox/
git fetch --tags
sudo git checkout v4.4.2
sudo ./upgrade.sh
sudo systemctl restart netbox netbox-rq