Оновлення 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
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Оновлення 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

// Або створити шар сумісності:
function flattenStrapiData<T>(item: { id: number; attributes: T }): T & { id: number } {
  return { id: item.id, ...item.attributes }
}

Якщо фронтенд великий — можна включити режим сумісності у 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 з вікном обслуговування

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

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

Деякі плагіни спільноти можуть не мати v5-версії — потрібно шукати альтернативи або чекати оновлень.

Часові рамки

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