Upgrading OpenACS 4.6.3 to 5.0

  • Oracle. This forum posting documents how to upgrade an Oracle installation from OpenACS 4.6.3 to 5 .

  • PostGreSQL. You must use PostGreSQL 7.3.x or newer to upgrade OpenACS beyond 4.6.3. See Upgrade PostGreSQL to 7.3; Table 2.2, “Version Compatibility Matrix”

    1. Back up the database and file system.

    2. Upgrade the file system for packages/acs-kernel. the section called “Upgrading the OpenACS files”

    3. Upgrade the kernel manually. (There is a script to do most of the rest: /contrib/misc/upgrade_4.6_to_5.0.sh on HEAD). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)

      [root root]# su - $OPENACS_SERVICE_NAME
      
      [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-kernel/sql/postgresql/upgrade
      

      Manually execute each of the upgrade scripts in sequence, either from within psql or from the command line with commands such as psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME . Run the scripts in this order (order is tentative, not verified):

      psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-4.6.4-4.6.5.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-4.6.5-4.6.6.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-4.7d-4.7.2d.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-4.7.2d-5.0d.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0d-5.0d2.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0d2-5.0d3.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0d6-5.0d7.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0d7-5.0d9.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0d11-5.0d12.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0.0a4-5.0.0a5.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0.0b1-5.0.0b2.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0.0b2-5.0.0b3.sql $OPENACS_SERVICE_NAME
      psql -f upgrade-5.0.0b3-5.0.0b4.sql $OPENACS_SERVICE_NAME
      
    4. Upgrade ACS Service Contracts manually:

      [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-service-contracts/sql/postgresql/upgrade
      psql -f upgrade-4.7d2-4.7d3.sql $OPENACS_SERVICE_NAME
      
    5. Load acs-authentication data model.

      psql -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/openacs-5/packages/acs-authentication/sql/postgresql/acs-authentication-create.sql $OPENACS_SERVICE_NAME
      
    6. Load acs-lang data model.

      psql -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-lang/sql/postgresql/acs-lang-create.sql $OPENACS_SERVICE_NAME
      
    7. (This step may overlap with the two previous steps, but I think it's harmless?) Create a file which will be executed on startup which takes care of a few issues with authentication and internationalization: create $OPENACS_SERVICE_NAME/tcl/zzz-postload.tcl containing:

      if {![apm_package_installed_p acs-lang]} {
      apm_package_install -enable -mount_path acs-lang $::acs::rootdir/packages/acs-lang/acs-lang.info
      lang::catalog::import -locales [list "en_US"]
      }
      
      if {![apm_package_installed_p acs-authentication]} {
      apm_package_install -enable $::acs::rootdir/packages/acs-authentication/acs-authentication.info
      apm_parameter_register "UsePasswordWidgetForUsername" \
      "Should we hide what the user types in the username
      field, the way we do with the password field? Set
      this to 1 if you are using sensitive information
      such as social security number for username." \
      acs-kernel 0 number \
      security 1 1
      parameter::set_value -package_id [ad_acs_kernel_id] -parameter UsePasswordWidgetForUsername -value 0
      }
    8. If you can login, visit /acs-admin/apm and upgrade acs-kernel and acs-service-contract and uncheck the data model scripts. Restart. If everything is still working, make another backup of the database.

    9. Upgrade other packages via the APM

    See also these forum posts: Forum OpenACS Development: 4.6.3 upgrade to 5-HEAD: final results, OpenACS 5.0 Upgrade Experiences.

    There are a few things you might want to do once you've upgraded. First, the acs-kernel parameters need to be set to allow HREF and IMG tags, if you want users who can edit HTML to be able to insert HREF and IMG tags. Also, you might need to set the default language for your site. See the above link on OpenACS 5.0 Upgrade Experiences for details.