Dashboard > FarCry 4.0 Developers Guide > Home > Upgrading from Earlier Versions
FarCry 4.0 Developers Guide
Upgrading from Earlier Versions
Added by Geoff Bowers , last edited by Geoff Bowers on May 30, 2007  (view change)
Labels: 
(None)

Please Read

There is *no* automated upgrade from version 3.0 or earlier installations at this time. Until a specific updater is written you will need to discuss upgrade options on http://groups.google.com/group/farcry-beta

Backward Compatibility

For the 4.0 release we have tried very hard to maintain backward compatibility for applications built in earlier versions of FarCry. Nevertheless there have been several significant architectural changes that you will need to accommodate during the upgrade.

If your application doesn't deviate significantly from a standard FarCry solution there should only be a few structural changes required – mainly with respect to the relative location of FarCry framework files. Schema changes will be automated by an updater as per previous upgrades.

Known Issues

The following changes will impact your upgrade:

  • change of directory structure for core libraries and projects
  • project Application.cfm changes
  • addition of plugin architecture
  • change of schema for array tables
  • change of file path management for media assets

Directory Structure Changes

Project Changes

You will need to update your project Application.cfm to use the farcryinit tag.

The following files should be removed from your project:

  • ./config/_applicationInit.cf m
  • ./config/_dmSecUserDirectories.cfm

Note: if you had modifications to the default userdirectory for the security sub-system (ie. you have modified _dmSecUserDirectories) then you will need to transfer these changes into _serverSpecificVars.cfm

Plugin Architecture

For example, you will need to include farcrycms plugin for News, Events, Facts and Links.

Array Table Schema Changes

There is a beta updater under ./farcry/updates called b400.cfm that should update array tables. However, you may need to manually change the dmNavigation array tables in order to get there.

Media File Path Changes

The way in which files are uploaded and stored on the server has changed. This may impact your current media asset management.

Rough notes only...
- [ ] update ./www/Application.cfm
    - [ ] remove old junk
    - [ ] put in farcryinit tag with relevant values
    - [ ] <cfimport taglib="/farcry/farcry_core/tags/farcry/"
          prefix="farcry" />
          <farcry:farcryInit name="demo40" dbType="mysql"
          lFarcryLib="farcryflow" />
- [ ] update ./config/_serverspecificvars.cfm
    - [ ] remove defunct variables
- [ ] delete ./config/_applicationInit.cfm
    - [ ] (taken care of by farcryinit tag)
- [ ] delete ./config/_dmSecUserDirectories.cfm
    - [ ] if you have mods here you may need to transfer these to
          _serverspecificvars.cfm
- [ ] update array property tables
    - [ ] note: can't reach updater without manually modifying
          dmnavigation array properties manually
    - [ ] run updater (currently called p310)
    - [ ] updater appears to throw in some random folders for image
          paths into the /farcry mapping folder (this is not good --
          just delete the folders)
- [ ] COAPI changes
    - [ ] deploy all COAPI type changes as required
        - [ ] a lot of db repairs likely
        - [ ] MSSQL: numerics and text changes will fail (ignore)
    - [ ] deploy all COAPI rule changes as required
- [ ] Code Changes
    - [ ] array property faults
        - [ ] check for all direct references to array property tables
              (ie. those that bypass fourq)
        - [ ] requires a change from objectid to parentid in most cases

Here are some of my "working notes" for upgrading from v2/3 to v 4. I have done about 6 upgrades on some old FC sites and aside from a minor "isms" from a custom type, the below works quite well.

1. Setup a new project folder under "Projects"
2. Copy over any requisite files from the previous versions project. The folder are pretty identical so can just do a cut and paste for webskins, etc. I suggest not copying over the Application.cfm and just moving over any code you may have added into the new Application.cfm. Hold off on adding any of your custom files in the packages folder until the site is working.
3. Add "typename (varcahr 250)" to dmNavigation_aObjectIDs Table to your existing db
4. Open the dmNavigation_aObjectIDs and rename the objectid column to parentid. Make sure the table Matches (exactly) a core install
5. Run Updater.
6. If you can not reach the updater comment out lines 39 -51 in /Admin/Application.cfm "which checks to see if the person has general admin permissions". Be sure uncomment this when done!
7. Depending on the version of your FC install start with the correct version to update from.
8. Copy over any files from the packages directory
9. Login to Web Top and and go to Admin --> COAPI and begin to deploy/updates/repair types
10. Update all "/farcry/farcry_core/" to "/farcry/core/"
11. Update all "/farcry/fourq/" to "/farcry/core/packages/fourq/"
12. If applicable, Update all "/farcry/#application.applicationname#/" to "/farcry/projects/#application.applicationname#/"
13. Update any "farcry.farcry_core." to "farcry.core."
14. Look out for hardcoded project names in <cfimport> and update then accordingly.
15. Please note you will need to update your custom packages to reflect the new method of extending or creating custom types. The developers manual has this on page 116 and also check out http://docs.farcrycms.org:8080

Powered by a free Atlassian Confluence Open Source Project License granted to FarCry CMS. Evaluate Confluence today.
Powered by Atlassian Confluence 2.7, the Enterprise Wiki. Bug/feature request - Atlassian news - Contact administrators