Forum OpenACS Q&A: My Upgrade notes from OpenACS 5.1 to 5.2 (branch head)

Bearing in mind that my 5.1 was *slightly* pre-release, here are my notes that I made. As always, you should do upgrades on a development box because a little trial and error may be required!

I hope this is useful for someone.

I have checked in the following fix:

packages/news/sql/postgresql/upgrade/upgrade-5.2.0d1-5.2.0d2.sql

* specified the table cr_revisions for news_item_full_active view column title (now ambiguous with acs_object).

I had to make the following manual tweaks to schema update files:

acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0d2-5.2.0d3.sql

* comment out the line "alter table cr_folder_type_map drop constraint cr_folder_type_map_fldr_fk;"
* comment out the line "alter table cr_folder_type_map drop constraint cr_folder_type_map_typ_fk;"

(maybe all drop statements in upgrades should be wrapped with code to check for their existance - might require delving into the postgres internal tables which would be horribly version dependant.)

acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0a1-5.2.0a2.sql

* there seemed to be a problem with the object types of my installed etp (or the etp upgrade scripts - one or the other) - I worked around it by changing the last inline_0 def in this file to read as:

create function inline_0 ()
returns integer as '
declare
ct RECORD;
begin
for ct in select object_type
from acs_object_type_supertype_map
where ancestor_type = ''content_revision''
loop
if ct.object_type not in( ''journal_issue'', ''journal_article'', ''news_item'' )
then
perform content_type__refresh_view (ct.object_type);
end if;
end loop;

return null;
end;' language 'plpgsql';

(This will probably bite me later, but I couldn't figure out how to rectify it properly).

Use APM

* Always uncheck the "mount" options

Upgrade first:

* Kernel
* Site-Wide Administration

RESTART

Then upgrade:

* API Browser
* Authentication
* Bootstrap Installer
* Content Repository
* Documentation
* Date and Time Utilities
* Events
* Mail
* Mail Services Lite
* Messaging
* Service Contracts
* Tcl Library
* Templating
* Bug Tracker
* Categories
* Edit This Page
* File Storage
* Weblogger
* webDAV Support
* RSS Support
* Search
* Trackback
* Workflow

Skipping these datamodels:

Events : upgrade-0.4d-0.4d1.sql

RESTART

Then upgrade:

* Subsite
* any other packages requiring an upgrade.

Skipping these data models:

Notifications: upgrade-5.0.0b4-5.1.0d2.sql

I also chose to skip upgrading OpenFTS since I'm going to remove it and replace with tsearch.
Despite the checked in fix mentioned above, i decided to ignore the news package since upgrading it was painful (now it's running after_install instead of after_upgrade...) and the site in question replaced news with a weblog some time ago.

Post-upgrade tasks:

The content-repository upgrades seemed to miss at least one permutation of content_item__new that workflow plpgsql procs use (damn postgres's non-package friendly ways...), so I ran packages/acs-content-repository/sql/postgresql/content-item.sql

Collapse
Posted by russ m on
(maybe all drop statements in upgrades should be wrapped with code to check for their existance - might require delving into the postgres internal tables which would be horribly version dependant.)
I can't find it in a quick scan of the PG docs, but I'm pretty sure they claim to support the SQL standard schema querying tables as views into the PG-specific schema management stuff... assuming I'm right, and that Oracle also does, this shouldn't actually be too hard...