Обновление Strapi v4 на Strapi v5

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Обновление Strapi v4 на Strapi v5
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Обновление Strapi v4 на Strapi v5

Strapi v5 — мажорное обновление с breaking changes. Основные изменения: новый формат ответа API (плоская структура вместо data.attributes), новый Document Service вместо Entity Service, обновлённый TypeScript.

Ключевые изменения

Формат ответа API:

// Strapi v4
{
  "data": {
    "id": 1,
    "attributes": { "title": "Article", "slug": "article" }
  }
}

// Strapi v5
{
  "id": 1,
  "documentId": "abc123",
  "title": "Article",
  "slug": "article"
}

Document Service вместо Entity Service:

// v4 (Entity Service)
await strapi.entityService.findMany('api::article.article', {
  filters: { published: true },
  populate: ['author'],
})

// v5 (Document Service)
await strapi.documents('api::article.article').findMany({
  filters: { published: true },
  populate: ['author'],
})

Draft/Publish через status вместо publishedAt:

// v4
{ filters: { publishedAt: { $notNull: true } } }

// v5
{ status: 'published' }

Официальный миграционный инструмент

# Обновить Strapi
npx @strapi/upgrade major

# Или пошагово:
npm install @strapi/strapi@5 @strapi/plugin-graphql@5 # и другие плагины

# Запустить codemods для автоматических изменений
npx @strapi/codemods migrate

Codemods автоматически обновят:

  • Entity Service → Document Service
  • Устаревшие хуки жизненного цикла
  • Импорты из @strapi/strapi

Обновление фронтенда

Фронтенд нужно обновить под новый формат ответа:

// До (v4)
const getTitle = (data: any) => data.attributes.title

// После (v5)
const getTitle = (data: any) => data.title

// Или создать compatibility layer:
function flattenStrapiData<T>(item: { id: number; attributes: T }): T & { id: number } {
  return { id: item.id, ...item.attributes }
}

Если фронтенд большой — можно включить compatibility mode в v5:

// config/features.js
module.exports = { contentReleasesEnabled: true }

// Или через env:
STRAPI_RESPONSE_ENVELOPE=true  // возвращает v4-совместимый формат

Порядок обновления

  1. Обновить Strapi в staging среде
  2. Запустить npx @strapi/codemods migrate на серверном коде
  3. Запустить тесты API — найти места с изменённым форматом
  4. Обновить фронтенд под новый формат
  5. Протестировать полный сайт
  6. Деплой в production с maintenance window

Проверка совместимости плагинов

# Проверить все плагины на совместимость с v5
npm ls | grep strapi
# Для каждого плагина проверить: https://market.strapi.io

Некоторые плагины сообщества могут не иметь v5-версии — нужно искать альтернативы или ждать обновлений.

Сроки

Миграция среднего проекта (5–8 content types, кастомные контроллеры, фронтенд) — 3–5 дней при условии, что фронтенд не огромный.