Skip to content

Commit

Permalink
Update from v4.4.x to v4.5 (#1975)
Browse files Browse the repository at this point in the history
  • Loading branch information
MagdalenaZuba committed May 11, 2023
1 parent 895f9f2 commit fc1f8f9
Show file tree
Hide file tree
Showing 3 changed files with 196 additions and 1 deletion.
193 changes: 193 additions & 0 deletions docs/update_and_migration/from_4.4/update_from_4.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
--
description: Update your installation to the latest v4.5 version from v4.4.x.
---

# Update from v4.4.x to v4.5

This update procedure applies if you are using a v4.4 installation.

## Update from v4.4.x to v4.4.latest

Before you update to v4.5, you need to go through the following steps to update to the latest maintenance release of v4.4 (v[[= latest_tag_4_4 =]]).

### Update the application to v4.4.latest

Run:

=== "[[= product_name_content =]]"

``` bash
composer require ibexa/content:[[= latest_tag_4_4 =]] --with-all-dependencies --no-scripts
```
=== "[[= product_name_exp =]]"

``` bash
composer require ibexa/experience:[[= latest_tag_4_4 =]] --with-all-dependencies --no-scripts
```
=== "[[= product_name_com =]]"

``` bash
composer require ibexa/commerce:[[= latest_tag_4_4 =]] --with-all-dependencies --no-scripts
```

## Update from v4.4.latest to v4.5

When you have the latest version of v4.4, you can update to v4.5.

### Update the application

First, run:

=== "[[= product_name_content =]]"

``` bash
composer require ibexa/content:[[= latest_tag_4_5 =]] --with-all-dependencies --no-scripts
composer recipes:install ibexa/content --force -v
```
=== "[[= product_name_exp =]]"

``` bash
composer require ibexa/experience:[[= latest_tag_4_5 =]] --with-all-dependencies --no-scripts
composer recipes:install ibexa/experience --force -v
```
=== "[[= product_name_com =]]"

``` bash
composer require ibexa/commerce:[[= latest_tag_4_5 =]] --with-all-dependencies --no-scripts
composer recipes:install ibexa/commerce --force -v
```

The `recipes:install` command installs new YAML configuration files.
Review the old YAML files and move your custom configuration to the relevant new files.

### Update the database

Next, update the database:

[[% include 'snippets/update/db/db_backup_warning.md' %]]

Apply the following database update scripts:

=== "MySQL"

``` bash
mysql -u <username> -p <password> <database_name> < vendor/ibexa/installer/upgrade/db/mysql/ibexa-4.4.latest-to-4.5.0.sql

```

=== "PostgreSQL"

``` bash
psql <database_name> < vendor/ibexa/installer/upgrade/db/postgresql/ibexa-4.4.latest-to-4.5.0.sql
```

#### Ibexa Open Source

If you have no access to Ibexa DXP's `ibexa/installer` package, apply the following database update:

=== "MySQL"

``` sql
CREATE TABLE ibexa_token_type
(
id int(11) NOT NULL AUTO_INCREMENT,
identifier varchar(64) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY ibexa_token_type_unique (identifier)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

CREATE TABLE ibexa_token
(
id int(11) NOT NULL AUTO_INCREMENT,
type_id int(11) NOT NULL,
token varchar(255) NOT NULL,
identifier varchar(128) DEFAULT NULL,
created int(11) NOT NULL DEFAULT 0,
expires int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY ibexa_token_unique (token,identifier,type_id),
CONSTRAINT ibexa_token_type_id_fk
FOREIGN KEY (type_id) REFERENCES ibexa_token_type (id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
```

=== "PostgreSQL"

``` sql
CREATE TABLE ibexa_token_type
(
id serial PRIMARY KEY,
identifier varchar(64) NOT NULL
);

CREATE TABLE ibexa_token
(
id serial PRIMARY KEY,
type_id int NOT NULL
CONSTRAINT ibexa_token_type_id_fk
REFERENCES ibexa_token_type (id)
ON DELETE CASCADE,
token varchar(255) NOT NULL,
identifier varchar(128) DEFAULT NULL,
created int NOT NULL DEFAULT 0,
expires int NOT NULL DEFAULT 0
);
```

## Finish code update

Finish the code update by running:

```bash
composer run post-install-cmd
```

## Run data migration

### Customer Portal

If you are using Ibexa Experience or Ibexa Commerce,
you can now run data migration required by the Customer Portal and Commerce features to finish the update process:

- Customer Portal:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/corporate-account/src/bundle/Resources/migrations/customer_portal.yaml --name=2023_03_06_13_00_customer_portal.yaml
php bin/console ibexa:migration:migrate --file=2023_03_06_13_00_customer_portal.yaml
```

- Corporate account — this migration allows all company members to shop in the frontend shop. If you have implemented business logic that depends on keeping company members out of the frontend shop, you can skip it:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/storefront/src/bundle/Resources/migrations/2023_04_27_10_30_corporate_account.yaml --name=2023_04_27_10_30_corporate_account.yaml
php bin/console ibexa:migration:migrate --file=2023_04_27_10_30_corporate_account.yaml
```

- Storefront user update:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/storefront/src/bundle/Resources/migrations/2023_04_27_11_20_storefront_user_role_update.yaml --name=2023_04_27_11_20_storefront_user_role_update.yaml
php bin/console ibexa:migration:migrate --file=2023_04_27_11_20_storefront_user_role_update.yaml
```

- Corporate access role update:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/corporate-account/src/bundle/Resources/migrations/2023_05_09_12_40_corporate_access_role_update.yaml --name=2023_05_09_12_40_corporate_access_role_update.yaml
php bin/console ibexa:migration:migrate --file=2023_05_09_12_40_corporate_access_role_update.yaml
```

- Shipment permissions:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/shipping/src/bundle/Resources/install/migrations/shipment_permissions.yaml --name=shipment_permissions.yaml
php bin/console ibexa:migration:migrate --file=shipment_permissions.yaml
```

- Order permissions:

```bash
php bin/console ibexa:migrations:import vendor/ibexa/order-management/src/bundle/Resources/install/migrations/order_permissions.yaml --name=order_permissions.yaml
php bin/console ibexa:migration:migrate --file=order_permissions.yaml
```
2 changes: 1 addition & 1 deletion docs/update_and_migration/update_ibexa_dxp.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ To update [[= product_name =]] to a newer version, select the version you are cu

=== "I am using v4.0"

If you already have a v4.0 installation, [update to the latest v4.4 version](from_4.3/update_from_4.3.md).
If you already have a v4.0 installation, [update to the latest v4.5 version](from_4.4/update_from_4.4.md).
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,8 @@ nav:
- Update to v4.4: update_and_migration/from_4.3/update_from_4.3.md
- Use new Commerce packages: update_and_migration/from_4.3/update_from_4.3_new_commerce.md
- Keep old Commerce packages: update_and_migration/from_4.3/update_from_4.3_old_commerce.md
- Update from v4.4:
- Update to v4.5: update_and_migration/from_4.4/update_from_4.4.md
- Migrate to Ibexa DXP:
- Migrate from eZ Publish Platform: update_and_migration/migrate_to_ibexa_dxp/migrating_from_ez_publish_platform.md
- Migrate from eZ Publish: update_and_migration/migrate_to_ibexa_dxp/migrating_from_ez_publish.md
Expand Down

0 comments on commit fc1f8f9

Please sign in to comment.