Forum OpenACS Q&A: Proper package upgrade and deleting methods

Posted by Ryan Gallimore on
Thanks, daveb. Very helpful.

Must you delete an older package before upgrading? Do upgrade scripts respect existing data?

And on a related note: I understand the best way to remove a package instance from a subsite is to unmount it and then delete it. Doing this before deleting an application from the APM is a must.

1. Why doesn't the APM on uninstalling a package, unmount all instances? Actually, I think XoWiki does do this, but it's the only example I've seen.

2. Are there any standards for package creation, deployment, and upgrade support?

3. Can we remove the little trash can delete buttons from the Applications admin tab, as they almost never work, or include the code from the unmount/delete site node process in that functionality?


Posted by Dave Bauer on
No upgrading means you don't have to delete anything. All your existing data will stay where it is. (But backup first, of course.)

Uninstall of packages just hasn't seen as much attention as installing. Basically on the real systems most OpenACS developers work on, packages aren't deleted so its not a huge issue.

On experimental systems, I just reinstall. It doesn't take that long.

There _is_ a way to have all packages uninstall/delete themselves cleanly. Every package may implement an unmount/delete instance/uninstall package callback that runs custom code for each package when these events occur.

Not all packages have been updated to use these callbacks for uninstall type events yet. In general, as I said, most sites do not require deleting of data, so this area is neglected.