Upgrading OpenACS

Upgrading 4.5 to 4.6.x

The required platform for OpenACS 4.6 is the same as 4.5, with the exception of OpenFTS. OpenACS 4.6 and later require OpenFTS 0.3.2 for full text search on PostGreSQL. If you have OpenFTS 0.2, you'll need to upgrade.

  1. Make a Backup. Back up the database and file system (see the section called “Manual backup and recovery”).

  2. OPTIONAL: Upgrade OpenFTS. the section called “Upgrading OpenFTS from 0.2 to 0.3.2”

  3. Stop the server

    [root root]# svc -d /service/service0
  4. Upgrade the file system. the section called “Upgrading the OpenACS files”

  5. Start the server

    [root root]# svc -u /service/service0
  6. Use APM to upgrade the database. 

    1. Browse to the package manager, http://yourserver/acs-admin/apm.

    2. Click Install packages.

    3. Select the packages you want to install. This should be everything that says upgrade, plus any new packages you want. It's safest to upgrade the kernel by itself, and then come back and upgrade the rest of the desired packages in a second pass.

    4. On the next screen, click Install Packages

    5. When prompted, restart the server:

      [root root]# restart-aolserver service0
    6. Wait a minute, then browse to the package manager, http://yourserver/acs-admin/apm.

    7. Check that the kernel upgrade worked by clicking All and making sure that acs-kernel version is 5.0.0b4.

  7. Rollback. If anything goes wrong, roll back to the backup snapshot.

Upgrading OpenACS 4.6.x to 4.6.3

Upgrading from before 4.6.3 to 5.0

OpenACS 5.0 requires PostGreSQL 7.3; OpenACS 4.6.3 supports both 7.2 and 7.3; OpenACS versions prior to 4.6.3 do not support PostGreSQL 7.3. Therefore, if you are upgrading a PostGreSQL OpenACS site from a version before 4.6.3, you must do it in three steps:

Upgrading OpenACS 4.6.3 to 5.0

  1. pg_dump mydb > mydb.dmp
    
    If you are also upgrading from postgresql 7.2 to postgresql 7.3:
    From openacs 5.0
    
    /openacs-5/bin/pg_7.2to7.3_upgrade_helper.pl mydb.dmp mydb-new.dmp /path/to/openacs-4-install
    
        * Reload mydb-new.dmp into postgresql 7.3.
        * psql -f /openacs-5/packages/acs-kernel/sql/postgresql/postgresql.sql mydb
        * Load acs-kernel sql upgrade scripts from the previous openacs version. Be sure to load 5.0d* scripts before 5.0.0b* scripts.
        * Load acs-service-contract sql upgrade scripts
        * Load acs-authentication data model
          psql -f openacs-5/packages/acs-authentication/sql/postgresql/acs-authentication-create.sql mydb
        * Load acs-lang data model
          psql -f openacs-5/packages/acs-lang/sql/postgresql/acs-lang-create.sql mydb 
    
    Next create in openacs-5/tcl/ zzz-postload.tcl containing
    
    if {![apm_package_installed_p acs-lang]} {
    
        apm_package_install -enable -mount_path acs-lang [acs_root_dir]/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_root_dir]/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 us ing 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
    
    }
    
    Cross fingers.
    
    If you can login, visit /acs-admin/apm and upgrade acs-kernel, acs-service-contract and uncheck the data model scripts. Restart. If everything is still working, make another backup of the database. Then upgrade the rest of your packages through the APM. 
    

    See also this forum post: Forum OpenACS Development: 4.6.3 upgrade to 5-HEAD: final results.

View comments on this page at openacs.org