Upgrading MidCOM from 2.6 to 2.8
- Upgrading via PEAR
- New topic storage format
- Changed storage handler for net.nemein.calendar.
- Updated style engine
- MidCOM manifest caching
- New cron configuration
- CSS file merger/compressor
- Upgrading from older MidCOM versions
MidCOM upgrade from 2.6 to 2.8 is fairly easy. There are some things outlined below that need attention.
Upgrading via PEAR
The first thing you need to do is run pear upgrade midcom/midcom and then just pear upgrade-all to make sure all components have been upgraded.
The you should run datagard (as root) and call the upgrade function. Do this twice to be sure that all tables have the needed updates. After this, restart apache.
New topic storage format
Topic component and style settings have been moved from parameters to proper topic properties in this release. Old content folders can be migrated automatically by running the convert_legacy_topics.php script. To do this, access it with your browser at http://www.example.net/midcom-exec-midcom/convert_legacy_topics.php
Since 2.8beta29 you will also need to access http/www.example.com/midcom-exec-midcom/move_legacy_rcs.php
Changed storage handler for net.nemein.calendar.
If you use net.nemein.calendar, you will also have to call an extra conversion script: http://www.example.com/midcom-exec-net.nemein.calendar/convert_legacy_events.php
You should also expect changes in the different styles that will need to be updated.
Updated style engine
MidCOM style engine has been switched to use collector instead of query builder to fetch elements.
This means that empty elements are not seen by the style engine. You can place HTML comments, the noop tag, or something similar in them.
MidCOM manifest caching
Due to the changes in MidCOM manifest caching you should invalidate the cache after upgrading.
New cron configuration
MidCOM's cron service has been changed so that each different cron run (minute, hour, day) is invoked separately. This means that instead of calling the midcom_services_cron.sh once per minute, add something like the following to your crontab:
#MidCOM Cron runs
*/2 * * * * root /usr/local/bin/midcom_services_cron.sh
30 * * * * root /usr/local/bin/midcom_services_cron.sh hour
15 5 * * * root /usr/local/bin/midcom_services_cron.sh day
CSS file merger/compressor
This feature needs to be separately enabled, instructions.
- Make sure you have memcached and PHP memcache extension installed and usable
- Enable memcache for MidCOM: in
code-init-before-midcomadd$GLOBALS['midcom_config_local']['cache_module_memcache_backend'] = 'memcached'; - Enable the merger module: in
code-init-after-midcomaddrequire(MIDCOM_ROOT . '/midcom/services/js_css_merger.php'); - Make sure any styles you use add CSS files via $_MIDCOM->add_link_head(), for example:
$_MIDCOM->add_link_head
(
array
(
'href' => MIDCOM_STATIC_URL . '/template_SimpleGray/content.css',
'media' => 'all',
'type' => 'text/css',
'rel' => 'stylesheet'
)
);
Upgrading from older MidCOM versions
If you're upgrading from MidCOM 2.4 or older, please refer to the Upgrading MidCOM from 2.4 to 2.6 guide.
