Forum OpenACS Development: Re: Upgrade and install management

Collapse
Posted by Malte Sussdorff on
I totally agree with what is proper system setups and testing. All our customers are on a three server setup, usually in three different locations (geographically): Development, Staging and Production.

The main reason for me to be blunt here is that I want to provide a best practice guide on how to do development and use the Package Manager to run upgrades.

Additionally, even in a development server I am usually "ill mooded" if I have to import the database again because an upgrade failed.

Last but not least, keep in mind that upgrades can fail because version 5.2.1 - 5.2.2 makes an assumption that is not true anymore in 5.4.1, but breaks because the TCL procedures used in the 5.2.1-5.2.2 upgrade behave differently now. This happened to me on acs-subsite and a couple of times on XoWIKI. And yes, you should not have a system so out of date, but it still happens (and apparently it happens a lot, from my experience).

This all being said, I think one of the best things we could do is get rid of the /sql/postgresql/upgrade files (for the future) and use the TCL callback to do the upgrade. This would prevent us from having side effects and does allow transactions

Why have one additional callback? Probably no need, especially if we are not having DB scripts to upgrade at the same time, but "before_upgrade" does not sound right and "after upgrade" does not sound right either.