• Алексей
  • DevOps
  • 2 мин. чтения

Миграция n8n: обновляем Traefik и PostgreSQL без потери данных

Миграция n8n: обновляем Traefik и PostgreSQL без потери данных

Почему n8n требует обновления инфраструктуры?

Проект n8n, как любое серьёзное приложение для автоматизации рабочих процессов, развивается быстро. Версии Traefik 1.x и PostgreSQL 11 давно вышли из поддержки, оставляя системы уязвимыми и неэффективными. Но главная проблема — это совместимость: новые версии n8n перестают работать со старыми компонентами инфраструктуры. Миграция неизбежна, но её нужно провести правильно, чтобы не потерять данные работников, истории выполнения автоматизаций и конфиги сложных workflow.

В этой статье мы разберём реальный сценарий обновления с акцентом на сохранение данных, резервные копии и пошаговую стратегию миграции.

Подготовка: аудит текущего состояния

Перед любой миграцией нужно понять, что у вас есть. Команда должна создать инвентарь всех компонентов и определить объём данных.

Что проверить

  • Размер базы данных PostgreSQL 11: команда SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database; покажет объём. Если БД больше 100 ГБ, придётся распланировать окно обслуживания тщательнее.
  • Количество рабочих процессов в n8n: это основная метрика для планирования времени миграции.
  • Версия Traefik и его конфигурация: версия 1.x использует совершенно другой синтаксис чем 3.3. Экспортируйте текущие правила маршрутизации.
  • Зависимости приложения: проверьте, какие внешние сервисы и API интегрированы с n8n.
  • Текущий бэкап-процесс: убедитесь, что у вас есть актуальная резервная копия.

Стратегия миграции: горячее переключение против холодного старта

Существует два подхода, каждый с плюсами и минусами.

Холодная миграция (рекомендуется для большинства)

Останавливаем n8n, снимаем полный бэкап PostgreSQL 11, создаём новую инстанцию PostgreSQL 16, восстанавливаем данные, обновляем Traefik, запускаем n8n. Время простоя: от 30 минут до нескольких часов в зависимости от размера БД.

Преимущества: надёжность, простота откатки, полный контроль над процессом.

Горячая миграция (для критичных систем)

Запускаем новый стек параллельно, синхронизируем данные в реальном времени через репликацию PostgreSQL, проводим финальное переключение. Время простоя: минуты.

Недостатки: высокая сложность, требует expertise, больше точек отказа.

Для большинства проектов холодная миграция предпочтительнее. Рассмотрим именно её.

Пошаговая инструкция миграции

Шаг 1: Резервная копия

pg_dump -h localhost -U postgres -d n8n_db > n8n_backup_$(date +%Y%m%d_%H%M%S).sql

Сохраните дамп на отдельном хранилище — не на той же машине. Проверьте размер файла и убедитесь, что у вас достаточно места на целевом сервере.

Шаг 2: Подготовка PostgreSQL 16

Установите PostgreSQL 16 на новый сервер или отдельный порт. Создайте пользователя и базу:

createuser -U postgres n8n_user
createdb -U postgres -O n8n_user n8n_db

Шаг 3: Восстановление данных

psql -U postgres -d n8n_db < n8n_backup.sql

Это самый длительный этап. Для больших БД может занять часы. Используйте утилиту pv для мониторинга прогресса:

pv n8n_backup.sql | psql -U postgres -d n8n_db

Шаг 4: Миграция конфигурации Traefik

Здесь главное отличие между версиями. Traefik 1.x использовал файлы конфигурации в формате TOML с простой структурой. Traefik 3.3 требует динамической конфигурации через провайдеры (Docker, Kubernetes, статические файлы).

Пример конфигурации Traefik 3.3 для n8n:

[entryPoints]
[entryPoints.web]
address =
Межтекстовые Отзывы
Посмотреть все комментарии
guest