Forum OpenACS Development: Re: Upgrade and install management

Collapse
Posted by Don Baccus on
Which is fine if you have a staging server and have the habit of first running the upgrade on staging with the latest production data and then on production, but I'm not sure all users are doing that. Apart from the hassle to reload a backup of your DB
I'll echo dave on this one.

If, for instance, you're upgrading PG without making a dump of the database, I hope I'm not your customer. Why should an upgrade of OpenACS be any different? For any mission-critical software, you should plan for upgrades to fail, and be happy if they don't. That's the nature of the beast.

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.