Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -r1.153.2.33 -r1.153.2.34 --- openacs-4/packages/xowiki/xowiki.info 24 Jul 2017 10:30:54 -0000 1.153.2.33 +++ openacs-4/packages/xowiki/xowiki.info 28 Jul 2017 13:37:53 -0000 1.153.2.34 @@ -10,7 +10,7 @@ <inherit-templates-p>t</inherit-templates-p> <auto-mount>xowiki</auto-mount> - <version name="5.9.1b9" url="http://openacs.org/repository/download/apm/xowiki-5.9.1b9.apm"> + <version name="5.9.1b10" url="http://openacs.org/repository/download/apm/xowiki-5.9.1b10.apm"> <owner url="mailto:neumann@wu-wien.ac.at">Gustaf Neumann</owner> <summary>A xotcl-based enterprise wiki system with multiple object types</summary> <release-date>2017-02-27</release-date> @@ -55,7 +55,7 @@ <license>BSD-Style</license> <maturity>2</maturity> - <provides url="xowiki" version="5.9.1b9"/> + <provides url="xowiki" version="5.9.1b10"/> <requires url="acs-datetime" version="5.9.1b9"/> <requires url="acs-kernel" version="5.9.1b9"/> <requires url="acs-tcl" version="5.9.1b9"/> Index: openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl,v diff -u -r1.11.2.9 -r1.11.2.10 --- openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl 24 Jul 2017 15:12:22 -0000 1.11.2.9 +++ openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl 28 Jul 2017 13:37:53 -0000 1.11.2.10 @@ -698,8 +698,26 @@ foreach package_id [::xowiki::Package instances -closure true] { ::xowiki::Package initialize -package_id $package_id -init_url false # reload updated prototype pages - $package_id import-prototype-page categories-portlet + $package_id www-import-prototype-page categories-portlet } + + # This ON DELETE CASCADE was missed in the old good days and + # instances born with xowiki < 0.56 won't have it. Check if we + # still have the old name and in case recreate anew with proper + # ON DELETE behavior. We don't do it in every case because could + # be costly. + if {[::xo::dc 0or1row constraint_exists { + SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS + WHERE CONSTRAINT_NAME ='xowiki_page_instance_npage_template_fkey' + AND TABLE_NAME = 'xowiki_page_instance'}]} { + ::xo::dc transaction { + ::xo::dc dml drop_constraint \ + "alter table xowiki_page_instance drop constraint xowiki_page_instance_npage_template_fkey" + ::xo::dc dml recreate_constraint \ + "alter table xowiki_page_instance add constraint xowiki_page_instance_page_template_fkey foreign key (page_template) references cr_items(item_id) on delete cascade" + } + } + } }