eZ Publish a évolué vers eZ Platform et après qu'eZ Systems Corporation ait changé de nom en Ibexa, eZ Platform a été renommé Ibexa Content.
Ibexa Content est un système de gestion de contenu hiérarchique (Hierarchical Content Management System - HCMS), utile pour gérer de grands sites Web avec de nombreux types de contenu différents.
Sur eZ Publish ou eZ Platform 2.5, vous pouvez utiliser le bundle Kaliop pour gérer le schéma et le contenu de la base de données entre chaque environnement de serveur. Ce bundle permet de créer, mettre à jour ou supprimer toute la structure et le contenu d'eZ Platform. Une migration est un simple fichier SQL ou un fichier YAML contenant les instructions pour migrer la base de données.
Pour Ibexa Content, le bundle d'origine Kaliop eZ Migration ne fonctionne pas. Ibexa a publié une version compatible avec deux subtilités.
Ce guide concerne uniquement eZ Platform 3.x et Ibexa Content 3.x. Vous devez avoir un projet fonctionnel sur votre ordinateur avant de continuer.
Le gestionnaire de dépendances Composer doit être installé. Ce guide suppose que vous avez le chemin d'installation de Composer dans la variable d'environnement du système d'exploitation PATH.
Pour installer le bundle, ouvrez une fenêtre de terminal et accédez au dossier racine de votre projet.
Maintenant, exécuter cette commande : composer require ezsystems/ezmigrationbundle
Le Bundle eZ Migration permet d'effectuer la migration uniquement avec un Bundle. C'est un ancien comportement hérité de d'ancienne version de Symfony.
Pour résoudre ce problème, créez un répertoire "SiteMigrationBundle" dans le répertoire "src" de votre projet.
Ajoutez le fichier "SiteMigrationBundle.php" dans le répertoire créé à l'étape précédente avec ce contenu :
<?php
declare(strict_types=1);
namespace App\SiteMigrationBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
final class SiteMigrationBundle extends Bundle
{
}
Enregistrer le bundle dans le fichierconfig/bundles.php
//...
App\SiteMigrationBundle\SiteMigrationBundle::class => ['all' => true],
//...
Maintenant, vous pouvez executer les commandes Kaliop.
Si vous essayer la commande bin/console kaliop:migration:generate SiteMigrationBundle , vous obtenez cette erreur :
In Container.php line 266:
The "ez_migration_bundle.helper.config.resolver" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.
kaliop:migration:generate [--format FORMAT] [--type TYPE] [--mode MODE] [--match-type MATCH-TYPE] [--match-value MATCH-VALUE] [--match-except] [-l|--lang LANG] [--dbserver DBSERVER] [-a|--admin-login ADMIN-LOGIN] [--list-types] [--siteaccess [SITEACCESS]] [--] [<bundle> [<name>]]
Pour le résoudre en attendant que le correctif soit disponible, ajouter cette configuration de service dans le fichier "config/services.yaml" :
ez_migration_bundle.helper.config.resolver:
public: true
class: '%ez_migration_bundle.helper.config.resolver%'
arguments:
- '@ezpublish.config.resolver'
- '@service_container'
Vous pouvez désormais utiliser ce bundle lorsque vous utilisez le bundle de migration Kaliop sur votre projet Ibexa Content.
Par exemple, cette commande génère une migration YAML pour ajouter le rôle Administrateur :
$ bin/console kaliop:migration:generate --type=role --mode=create --match-type=identifier --match-value=Administrator SiteMigrationBundle
Generated new migration file: /var/www/ibexa_website/src/SiteMigrationBundle/MigrationVersions/20210618122305_placeholder.yml
Toutes vos migrations générées seront stockées dans "src/SiteMigrationBundle/MigrationVersions/ "
Pour célébrer la sortie de Dataflow 5 pour Symfony 7, voici un retour d'expérience sur ...
🎯 Nous relevons le défi de lancer un grand concours : Vous faire gagner un ...
Comment calculer dynamiquement des frais de port ? La documentation officielle qui explique comment créer ...
Comment créer un nouveau type d'attribut produit dans Ibexa Commerce ?
A la recherche d'un poste de travail temporaire ou permanent ? Vous recherchez un environnement ...
Après une découverte de surface d'Ibexa Commerce, entrons plus dans le détail pour comprendre son ...
Ibexa DXP propose un module pour gérer des produits pour la réalisation d'un site e-commerce. ...
Voici une présentation d'IbexaMailing, un module qui ajoute la gestion des newsletters à Ibexa. IbexaMailing est ...
C'est la dernière occasion de vous souhaitez le meilleur pour cette année 2024 et surtout ...
Pour célébrer la sortie de Dataflow 5 pour Symfony 7, voici un retour d'expérience sur ...
🎯 Nous relevons le défi de lancer un grand concours : Vous faire gagner un ...
Comment calculer dynamiquement des frais de port ? La documentation officielle qui explique comment créer ...
Comment créer un nouveau type d'attribut produit dans Ibexa Commerce ?
A la recherche d'un poste de travail temporaire ou permanent ? Vous recherchez un environnement ...
Après une découverte de surface d'Ibexa Commerce, entrons plus dans le détail pour comprendre son ...
Ibexa DXP propose un module pour gérer des produits pour la réalisation d'un site e-commerce. ...
Voici une présentation d'IbexaMailing, un module qui ajoute la gestion des newsletters à Ibexa. IbexaMailing est ...
C'est la dernière occasion de vous souhaitez le meilleur pour cette année 2024 et surtout ...