Forked from vidarl/gist:d32247a9e204fa8902676776d0433cc5
Created
June 7, 2021 10:29
-
-
Save larseirik/b8610115326038168ee1abd37ace28c6 to your computer and use it in GitHub Desktop.
malaga_2020_migration_presentation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Install 5.4 | |
########### | |
### preperations | |
in /var/www/ps/malaga/malagaezp54 | |
https://github.com/vidarl/ezp-toolkit#install-ez-publish-platform-5x--54- | |
Install 2.5 | |
########### | |
### preperation | |
cd /var/www/ps/malaga | |
git clone https://github.com/ezsystems/ezplatform-ee.git malaga_ezp25 | |
cd malaga_ezp25/ | |
git checkout v2.5.8 | |
vi .env | |
COMPOSE_PROJECT_NAME=malagaezp25b | |
docker-compose up -d | |
cp ~/.composer/auth.json auth.json | |
Install toolkit for easy db upgrade: | |
mkdir external && cd external && git clone https://github.com/vidarl/ezp-toolkit && cd ezp-toolkit && cd ../.. | |
# Install mysql client in container | |
docker-compose exec app bash | |
apt-get update; apt-get install -y vim less openssh-client procps mysql-client | |
docker-compose exec --user www-data app bash | |
COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer install | |
cd /var/www/ps/malaga/malagaezp54 | |
docker-compose up -d | |
### Demo start | |
http://localhost:8081/eng/Products | |
http://localhost:8081/ezdemo_site/Products | |
http://localhost:8081/ezdemo_site_admin/ | |
cd /var/www/ps/malaga/malagaezp54 | |
docker-compose down | |
/var/www/ps/malaga/malaga_ezp25 | |
docker-compose up -d | |
https://doc.ezplatform.com/en/2.5/migrating/migrating_from_ez_publish_platform/ | |
diff -ruN ../malagaezp54/composer.json composer.json|less | |
- "ezsystems/ezpublish-legacy": "^5.4.14", | |
- "ezsystems/demobundle": "^5.4.6", | |
- "ezsystems/comments-bundle": "^5.4.8", | |
- "whiteoctober/breadcrumbs-bundle": "~1.0.1", | |
- "nelmio/cors-bundle": "~1.3", | |
- "hautelook/templated-uri-bundle": "~1.0 | ~2.0", | |
- "sensio/framework-extra-bundle": "~3.0", | |
docker-compose exec --user www-data app bash | |
COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --no-update "ezsystems/ezplatform-xmltext-fieldtype:^1.3.0" | |
diff -ruN ../malagaezp54/ezpublish/config/parameters.yml app/config/parameters.yml | |
(no changed needed) | |
diff -ruN ../malagaezp54/ezpublish/config/ezpublish.yml app/config/ezplatform.yml|less | |
# NOTE !!! | |
comment out ez_publish_legacy section for now, must be re-enabled *AFTER* legacy-bridge is installed | |
cp ../ezplatform.yml_step1 app/config/ezplatform.yml | |
Check for custom bundels: | |
diff -ruN ../malagaezp54/ezpublish/EzPublishKernel.php app/AppKernel.php|less | |
# install legacy bridge | |
Reference : https://github.com/ezsystems/LegacyBridge/blob/v2.1.1/INSTALL.md | |
docker-compose exec --user www-data app bash | |
COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --update-with-all-dependencies "ezsystems/legacy-bridge" | |
vi app/AppKernel.php | |
new eZ\Bundle\EzPublishLegacyBundle\EzPublishLegacyBundle( $this ), | |
php bin/console ezpublish:legacy:init | |
Re-enable "ez_publish_legacy" section in app/config/ezplatform.yml | |
Add legacy extensions if as needed | |
ezsystems/ezscriptmonitor-ls | |
ezsystems/ezsi-ls | |
ezsystems/ezfind-ls | |
ezsystems/eztags-ls | |
#COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --no-update "ezsystems/ezscriptmonitor-ls" | |
#COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --no-update "ezsystems/ezsi-ls" | |
#COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --no-update "ezsystems/ezfind-ls" | |
#COMPOSER_HOME="/tmp/.composer" COMPOSER_MEMORY_LIMIT=-1 composer require --no-update "ezsystems/eztags-ls" | |
Add legacy-bridge rewrite rules to doc/nginx/ez_params.d/ez_rewrite_params: | |
# Legacy Bridge: | |
rewrite "^/var/([^/]+/)?storage/images(-versioned)?/(.*)" "/var/$1storage/images$2/$3" break; | |
rewrite "^/var/([^/]+/)?cache/(texttoimage|public)/(.*)" "/var/$1cache/$2/$3" break; | |
rewrite "^/design/([^/]+)/(stylesheets|images|javascript|fonts)/(.*)" "/design/$1/$2/$3" break; | |
rewrite "^/share/icons/(.*)" "/share/icons/$1" break; | |
rewrite "^/extension/([^/]+)/design/([^/]+)/(stylesheets|flash|images|lib|javascripts?)/(.*)" "/extension/$1/design/$2/$3/$4" break; | |
rewrite "^/packages/styles/(.+)/(stylesheets|images|javascript)/([^/]+)/(.*)" "/packages/styles/$1/$2/$3/$4" break; | |
rewrite "^/packages/styles/(.+)/thumbnail/(.*)" "/packages/styles/$1/thumbnail/$2" break; | |
rewrite "^/var/storage/packages/(.*)" "/var/storage/packages/$1" break; | |
docker-compose stop web; docker-compose up -d | |
# Copy custom template/code from old installation to new: | |
copy design from ../malagaezp54/ezpublish_legacy/extension/ezdemo/design/ezdemo/ | |
cp -a ../malagaezp54/ezpublish_legacy/design/ezdemo_site src/legacy_files/design/ | |
copy site accesses and settings/override : | |
cp -a ../malagaezp54/ezpublish_legacy/settings/siteaccess/eng ../malagaezp54/ezpublish_legacy/settings/siteaccess/ezdemo_site ../malagaezp54/ezpublish_legacy/settings/siteaccess/ezdemo_site_admin src/legacy_files/settings/siteaccess/ | |
cp ../malagaezp54/ezpublish_legacy/settings/override/* src/legacy_files/settings/override/ | |
copy vardir | |
mkdir -p ezpublish_legacy/var/ezdemo_site && cp -a ../malagaezp54/ezpublish_legacy/var/ezdemo_site/storage ezpublish_legacy/var/ezdemo_site | |
Make symlinks from src/legacy_files to ezpublish_legacy/settings/[...] | |
bin/console ezpublish:legacy:symlink -c | |
# Genereate extension autoloads, create symlinks in var/ to legacy etc.. | |
composer legacy-scripts | |
Install toolkit for easy db upgrade: | |
mkdir external && cd external && git clone https://github.com/vidarl/ezp-toolkit && cd ezp-toolkit && git checkout database_scripts && cd ../.. | |
# Upgrade database | |
Copy db dump from old installation | |
cp ../malagaezp54/ezp54_demo.sql . | |
Remove all existing tables if you like: | |
./external/ezp-toolkit/database/delete_tables.sh ezp SetYourOwnPassword ezp | |
Import database | |
time mysql -u ezp -pSetYourOwnPassword ezp -h db < ezp54_demo.sql | |
Upgrade db | |
time ./external/ezp-toolkit/database/upgrade_db.sh local | |
Change characterset to Charset=utf8mb4 in legacy | |
ezpublish_legacy/settings/override/site.ini.append.php | |
[DatabaseSettings] | |
Charset=utf8mb4 | |
Clear cache | |
rm -Rf var/cache/*/* ezpublish_legacy/var/cache ezpublish_legacy/var/ezdemo_site/cache | |
# Define image aliases for Symfony stack | |
cp ../ezplatform.yml_complete app/config/ezplatform.yml | |
rm -Rf var/cache/*/* ezpublish_legacy/var/cache ezpublish_legacy/var/ezdemo_site/cache | |
eZXMlText -> Richtext | |
https://doc.ezplatform.com/en/2.5/migrating/migrating_from_ez_publish_platform/#321-migrate-xmltext-content-to-richtext | |
php -d memory_limit=1536M bin/console ezxmltext:convert-to-richtext --dry-run --export-dir=ezxmltext-export --export-dir-filter=notice,warning,error --concurrency 4 -v | |
php -d memory_limit=1536M bin/console ezxmltext:import-xml --dry-run --export-dir=ezxmltext-export --content-object=128 -v | |
php -d memory_limit=1536M bin/console ezxmltext:import-xml --export-dir=ezxmltext-export --content-object=128 -v | |
php -d memory_limit=1536M bin/console ezxmltext:convert-to-richtext --export-dir=ezxmltext-export --export-dir-filter=notice,warning,error --concurrency 4 -v | |
rm -Rf var/cache/*/* ezpublish_legacy/var/cache ezpublish_legacy/var/ezdemo_site/cache | |
#################### ezplatform.yml_step1 ############### | |
ezpublish: | |
# HttpCache settings, By default 'local' (Symfony HttpCache Proxy), by setting it to 'http' you can point it to Varnish | |
# You may also set it to 'fastly' if you want to use the fastly CDN | |
http_cache: | |
purge_type: '%purge_type%' | |
# Repositories configuration, setup default repository to support solr if enabled | |
repositories: | |
default: | |
storage: ~ | |
search: | |
engine: '%search_engine%' | |
connection: default | |
# Siteaccess configuration, with one siteaccess per default | |
siteaccess: | |
list: [site, admin, ezdemo_site, eng, ezdemo_site_admin] | |
groups: | |
site_group: [site] | |
ezdemo_site_group: [ezdemo_site, eng, ezdemo_site_admin] | |
# WARNING: Do not remove or rename this group. | |
# It's used to distinguish common siteaccesses from admin ones. | |
# In case of multisite with multiple admin panels, remember to add any additional admin siteaccess to this group. | |
admin_group: [admin, ezdemo_site_admin] | |
default_siteaccess: ezdemo_site | |
match: | |
URIElement: 1 | |
# System settings, read in following order: `default`, <siteaccess-group>, <siteacces>, and `global` | |
# TIP: For multisite installations organize shared config into SiteAccess groups, | |
# on single-site you can place shared config under "default" for simplicity as shown below. | |
system: | |
default: | |
# Cache pool service, needs to be different per repository (database) on multi repository install. | |
cache_service_name: '%cache_pool%' | |
# These reflect the current installers, complete installation before you change them. For changing var_dir | |
# it is recommended to install clean, then change setting before you start adding binary content, otherwise you'll | |
# need to manually modify your database data to reflect this to avoid exceptions. | |
var_dir: var/ezdemo_site | |
content: | |
# As we by default enable EzSystemsPlatformHttpCacheBundle which is designed to expire all affected cache | |
# on changes, and as error / redirects now have separate ttl, we easier allow ttl to be greatly increased | |
default_ttl: '%httpcache_default_ttl%' | |
# HttpCache purge server(s) setting, eg Varnish, for when ezpublish.http_cache.purge_type is set to 'http'. | |
http_cache: | |
# If using fastly, 'purge_server' must be set to 'https://api.fastly.com' | |
purge_servers: ['%purge_server%'] | |
varnish_invalidate_token: '%varnish_invalidate_token%' | |
fastly: | |
service_id: '%fastly_service_id%' | |
key: '%fastly_key%' | |
#site_group: | |
# design: main | |
ezdemo_site_group: | |
languages: [eng-GB] | |
# eng: | |
# session: | |
# name: eZSESSID | |
# ezdemo_site_admin: { } | |
# ezdemo_site: | |
# session: | |
# name: eZSESSID | |
admin_group: | |
# System languages. Note that by default, content, content types, and other data are in eng-GB locale, | |
# so removing eng-GB from this list may lead to errors or content not being shown, unless you change | |
# all eng-GB data to other locales first. | |
# For admin this needs to contain all languages you want to translate content to on the given repository. | |
languages: [eng-GB] | |
page_builder: | |
siteaccess_list: [site] | |
content_tree_module: | |
contextual_tree_root_location_ids: | |
- 2 # Home (Content structure) | |
- 5 # Users | |
- 43 # Media | |
- 48 # Setup | |
- 55 # Forms | |
subtree_paths: | |
content: /1/2/ | |
media: /1/43/ | |
site: | |
languages: [eng-GB] | |
url_alias: | |
slug_converter: | |
transformation: 'urlalias_lowercase' | |
imagemagick: | |
enabled: true | |
path: /usr/bin/convert | |
ez_platform_standard_design: | |
# makes Kernel default templates (in EzPublishCoreBundle/Resources/views) part of standard Design | |
override_kernel_templates: false | |
#ez_publish_legacy: | |
# enabled: true | |
# system: | |
# ezdemo_site_admin: | |
# legacy_mode: true | |
# ezdemo_site: | |
# legacy_mode: true | |
#################### ezplatform.yml_complete ############### | |
ezpublish: | |
# HttpCache settings, By default 'local' (Symfony HttpCache Proxy), by setting it to 'http' you can point it to Varnish | |
# You may also set it to 'fastly' if you want to use the fastly CDN | |
http_cache: | |
purge_type: '%purge_type%' | |
# Repositories configuration, setup default repository to support solr if enabled | |
repositories: | |
default: | |
storage: ~ | |
search: | |
engine: '%search_engine%' | |
connection: default | |
# Siteaccess configuration, with one siteaccess per default | |
siteaccess: | |
list: [site, admin, ezdemo_site, eng, ezdemo_site_admin] | |
groups: | |
site_group: [site] | |
ezdemo_site_group: [ezdemo_site, eng, ezdemo_site_admin] | |
image_aliases_group: [ezdemo_site, eng, ezdemo_site_admin, admin] | |
# WARNING: Do not remove or rename this group. | |
# It's used to distinguish common siteaccesses from admin ones. | |
# In case of multisite with multiple admin panels, remember to add any additional admin siteaccess to this group. | |
admin_group: [admin, ezdemo_site_admin] | |
default_siteaccess: ezdemo_site | |
match: | |
URIElement: 1 | |
# System settings, read in following order: `default`, <siteaccess-group>, <siteacces>, and `global` | |
# TIP: For multisite installations organize shared config into SiteAccess groups, | |
# on single-site you can place shared config under "default" for simplicity as shown below. | |
system: | |
default: | |
# Cache pool service, needs to be different per repository (database) on multi repository install. | |
cache_service_name: '%cache_pool%' | |
# These reflect the current installers, complete installation before you change them. For changing var_dir | |
# it is recommended to install clean, then change setting before you start adding binary content, otherwise you'll | |
# need to manually modify your database data to reflect this to avoid exceptions. | |
var_dir: var/ezdemo_site | |
content: | |
# As we by default enable EzSystemsPlatformHttpCacheBundle which is designed to expire all affected cache | |
# on changes, and as error / redirects now have separate ttl, we easier allow ttl to be greatly increased | |
default_ttl: '%httpcache_default_ttl%' | |
# HttpCache purge server(s) setting, eg Varnish, for when ezpublish.http_cache.purge_type is set to 'http'. | |
http_cache: | |
# If using fastly, 'purge_server' must be set to 'https://api.fastly.com' | |
purge_servers: ['%purge_server%'] | |
varnish_invalidate_token: '%varnish_invalidate_token%' | |
fastly: | |
service_id: '%fastly_service_id%' | |
key: '%fastly_key%' | |
image_aliases_group: | |
image_variations: | |
articleimage: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [770] } | |
articlethumbnail: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [170, 220] } | |
backgroundimage: | |
reference: original | |
filters: | |
- { name: geometry/scaledownonly, params: [170, 350] } | |
billboard: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [764] } | |
block2items1: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [195] } | |
- { name: geometry/crop, params: [195, 98, 0, 0] } | |
block2items2: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [195] } | |
- { name: geometry/crop, params: [195, 98, 0, 0] } | |
blockgallery1: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [195] } | |
- { name: geometry/crop, params: [195, 98, 0, 0] } | |
campaign: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [770] } | |
- { name: geometry/crop, params: [770, 390, 0, 0] } | |
contentgrid: | |
reference: original | |
filters: | |
- { name: geometry/scalewidthdownonly, params: [370] } | |
- { name: geometry/crop, params: [370, 160, 0, 0] } | |
ezplatform_admin_ui_profile_picture_user_menu: | |
reference: reference | |
filters: | |
- { name: geometry/scaledownonly, params: [30, 30] } | |
- { name: geometry/crop, params: [30, 30, 0, 0] } | |
gallery: | |
reference: original | |
filters: | |
- { name: geometry/scalewidthdownonly, params: [770] } | |
galleryline: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [70, 150] } | |
gallerythumbnail: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [105, 100] } | |
highlighted: | |
reference: original | |
filters: | |
- { name: geometry/scalewidthdownonly, params: [300] } | |
- { name: geometry/crop, params: [300, 300, 0, 0] } | |
imagefull: | |
reference: original | |
filters: | |
- { name: geometry/scalewidthdownonly, params: [770] } | |
imagelarge: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [448, 622] } | |
infoboximage: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [75] } | |
large: | |
reference: reference | |
filters: | |
- { name: geometry/scaledownonly, params: [300, 300] } | |
listitem: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [130, 190] } | |
logo: | |
reference: null | |
filters: | |
- { name: geometry/scaleheight, params: [36] } | |
mainstory1: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [468] } | |
- { name: geometry/crop, params: [468, 396, 0, 0] } | |
mainstory2: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [439] } | |
- { name: geometry/crop, params: [439, 233, 0, 0] } | |
mainstory3: | |
reference: null | |
filters: | |
- { name: geometry/scalewidth, params: [201] } | |
- { name: geometry/crop, params: [201, 239, 0, 0] } | |
medium: | |
reference: reference | |
filters: | |
- { name: geometry/scaledownonly, params: [200, 200] } | |
multiuploadthumbnail: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [100, 80] } | |
productimage: | |
reference: null | |
filters: | |
- { name: geometry/scaledownwidthonly, params: [770] } | |
productthumbnail: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [170, 220] } | |
reference: | |
reference: null | |
filters: | |
- { name: geometry/scaledownonly, params: [600, 600] } | |
rss: | |
reference: null | |
filters: | |
- { name: geometry/scale, params: [88, 31] } | |
small: | |
reference: reference | |
filters: | |
- { name: geometry/scaledownonly, params: [100, 100] } | |
tiny: | |
reference: reference | |
filters: | |
- { name: geometry/scaledownonly, params: [30, 30] } | |
#site_group: | |
# design: main | |
ezdemo_site_group: | |
languages: [eng-GB] | |
# eng: | |
# session: | |
# name: eZSESSID | |
# ezdemo_site_admin: { } | |
# ezdemo_site: | |
# session: | |
# name: eZSESSID | |
admin_group: | |
# System languages. Note that by default, content, content types, and other data are in eng-GB locale, | |
# so removing eng-GB from this list may lead to errors or content not being shown, unless you change | |
# all eng-GB data to other locales first. | |
# For admin this needs to contain all languages you want to translate content to on the given repository. | |
languages: [eng-GB] | |
page_builder: | |
siteaccess_list: [site] | |
form_builder: | |
forms_location_id: 131 | |
content_tree_module: | |
contextual_tree_root_location_ids: | |
- 2 # Home (Content structure) | |
- 5 # Users | |
- 43 # Media | |
- 48 # Setup | |
- 55 # Forms | |
subtree_paths: | |
content: /1/2/ | |
media: /1/43/ | |
site: | |
languages: [eng-GB] | |
url_alias: | |
slug_converter: | |
transformation: 'urlalias_lowercase' | |
imagemagick: | |
enabled: true | |
path: /usr/bin/convert | |
ez_platform_standard_design: | |
# makes Kernel default templates (in EzPublishCoreBundle/Resources/views) part of standard Design | |
override_kernel_templates: false | |
ez_publish_legacy: | |
enabled: true | |
system: | |
ezdemo_site_admin: | |
legacy_mode: true | |
ezdemo_site: | |
legacy_mode: true | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment