Date de publication: le vendredi 27 mars 2009 à 09h34
Dernière modification: par Pascal BOYER le jeudi 2 septembre 2010 à 08h44
« Article précédent: eZ Publish : généralités sur la procédure de mise à jour
» Article suivant: eZ Publish : mise à jour de 3.10.x vers 3.10.y
Notes about database changes / Notes sur les modifications de la base de données
This section explains which database upgrade scripts can be skipped when upgrading an eZ Publish database to a newer version. In addition, it provides an overview of the database schema changes within stable release branches of eZ Publish.
Cet article indique les scripts de mise à jour de la base de données dont il est possible de ne pas tenir compte lors de la mise à jour de la base de données eZ Publish vers une nouvelle version. Par ailleurs, cet article propose une vue d'ensemble des modifications du schéma de la base de données des versions stables des différente branches de eZ Publish.
Version-focused database upgrade scripts / Scripts de mise à jour de la version de la base de données
When upgrading an eZ Publish database from version X to version Y, you have to run a set of the database upgrade scripts following the official upgrade path. This basically means that you need to run one database upgrade script for each stable release between X and Y. However, it often happens that a ".sql" file of the script only contains one or two lines with something like this:
Lors de la mise à jour d'une version X vers une version Y de la base de données de eZ Publish vous devez exécuter des scripts de mise à jour de la base de données en suivant le
chemin officiel de mise à jour
. Cela signifie que vous vous devez exécuter un script de mise à jour de la base de données pour chaque version stable comprise entre la version X et la version Y. Il arrive cependant souvent qu'un fichier .sql du script ne contienne qu'une ou deux lignes comme celles-ci:
UPDATE ezsite_data SET value='Z' WHERE name='ezpublish-version'; UPDATE ezsite_data SET value='N' WHERE name='ezpublish-release';
In this case, a database upgrade script is called "version-focused", since it does not do anything except update the current version number, which is stored internally in the system. When upgrading an eZ Publish database, you can skip all version-focused scripts for intermediary versions, as shown in the example below.
Dans un tel cas, le script de mise à jour de la base de données est appelé version-focused (focalisé sur la seule mise à jour de la version de la base de données) puisqu'il ne fait rien d'autre que mettre à jour le numéro de la version courante stocké en interne par le système. Lors de la mise à jour de la base de donnés de eZ Publish, vous pouvez ignorer tous les scripts version-focused des versions intermédiaires comme le montre l'exemple ci-dessous.
Exemple
In order to upgrade an eZ Publish database from version 3.6.0 to 3.8.10, you should run eleven database upgrade scripts:
Pour mettre à jour une version 3.6.0 de la base de données eZ Publish vers une version 3.8.10, vous devriez exécuter 11 scripts de mise à jour de la base de données:
- dbupdate-3.6.0-to-3.8.0.sql
- dbupdate-3.8.0-to-3.8.1.sql
- dbupdate-3.8.1-to-3.8.2.sql
- dbupdate-3.8.2-to-3.8.3.sql
- ...
- dbupdate-3.8.9-to-3.8.10.sql
There are seven version-focused upgrade scripts, meaning that seven of the scripts in the list contain only two lines (that simply update the version number) and can be skipped. Therefore, the list of scripts to run contains four items instead of eleven:
Or il existe 7 scripts de mise à jour version-focused, ce qui veut dire que 7 scripts de cette liste ne contennant que deux lignes (qui mettent simplement à jour le numéro de version) peuvent être ignorés. La liste des scripts devant donc être exécutés n'en contient dès lors plus que 5 sur 11:
- dbupdate-3.6.0-to-3.8.0.sql
- dbupdate-3.8.0-to-3.8.1.sql
- dbupdate-3.8.4-to-3.8.5.sql
- dbupdate-3.8.9-to-3.8.10.sql
Running these four scripts is equivalent to running all the eleven scripts mentioned above.
Exécuter ces cinq scripts revient au même qu'exécuter les 11 scripts mentionnés plus haut.
Database schema changes / Modifications du schéma de la base de données
If a database upgrade script is not version-focused (contains more than two lines), this usually means that the database structure was changed since the previous release. This is very typical for the first stable release in a branch, since there are usually some database schema changes as compared to the previous branch.
Si un script de mise à jour de la base de données n'est pas version-focused (c'est à dire qu'il contient plus de deux lignes), cela signifie généralement que la structure de la base de données a été modifiée depuis la dernière version. Ceci est typiquement le cas de la première version stable d'une branche qui s'accompagne fréquemment de quelques modifications du schéma de la base de données comparativement à la précédente branche.
Within stable release branches, database schemas are generally not changed. In other words, once the first stable release in a branch is out, the database schema should remain unchanged. However, exceptions are made for changes that are needed for important bugs and enhancements. When the next stable release in the current branch is out, the change will be present in the database upgrade script for it. In addition, such a bug fix also gets included in the next / upcoming branch for which there are no stable releases yet; the fix will be present in the database upgrade script for the first stable release in this branch (these are mentioned as 3.x.0 versions in the table below).
Dans les versions stables des branches, les schémas de la base de données ne sont généralement pas modifiés. En d'autres termes, une fois la première version stable d'une branche publiée, le schéma de la base de données ne devrait plus être modifié. Il arrive cependant que des corrections de bugs importants ou que des évolutions entraînent de telles modifications. Lorsque la prochaine version stable de la branche courante est publiée, les modifications sont présentes dans le script de mise à jour de la base de données. Par ailleurs, ces corrections de bugs sont incluses dans la prochaine branche à venir pour laquelle n'existe pas encore de version stable. Les corrections seront présentes dans le script de mise à jour de la base de données de la première version stable de cette prochaine branche (les versions stables sont mentionnées en tant que versions 3.x.0 dans le tableau ci-dessous).
The following table provides an overview of the database changes within stable release branches of eZ Publish, starting from version 3.6.
Le tableau ci-dessous offre une vue d'ensemble des modifications de la base de données relatives aux branches stables de eZ Publish, en commençant par la version 3.6.
| Database changes / Modifications de la base de données |
Introduced in Introduites dans |
|---|---|
| UPDATE ezpolicy SET function_name='administrate' WHERE module_name='shop' AND function_name='adminstrate' | 3.6.1, 3.5.4, 3.7.0, 3.8.0 |
| Bug fix for problems with performance of the "Keywords" datatype and missing indexes in database tables . | 3.6.9, 3.7.7, 3.8.1, 3.9.0 |
| Bug fix for missing indexes in 3.8 database . | 3.8.5, 3.9.0 |
| Bug fix for problem with storing long URLs . | 3.8.10, 3.9.4, 3.10.0 |
|
ALTER TABLE ezcontentclass CHANGE COLUMN serialized_name_list serialized_name_list longtext default NULL; ALTER TABLE ezcontentclass_attribute CHANGE COLUMN serialized_name_list serialized_name_list longtext NOT NULL | 3.9.1, 3.10.0 |
| ALTER TABLE ezvatrule CHANGE country country_code varchar(255) DEFAULT '' NOT NULL | 3.9.3, 3.10.0 |
Commentaires














