Upgrading to Wheels 1.1.x
Instructions for upgrading your ColdFusion on Wheels 1.0.x application to Wheels 1.1.x.
If you are upgrading from Wheels 1.0 or newer, the easiest way to upgrade is to replace the wheels folder with the new one from the 1.1 download. If you are upgrading from an earlier version, we recommend reviewing the steps outlined in Upgrading to Wheels 1.0.
Note: To accompany the newest 1.1.x releases, we've highlighted the changes that are affected by each release in this cycle.
Plugin Compatibility
Be sure to review your plugins and their compatibility with your newly-updated version of Wheels. Some plugins may stop working, throw errors, or cause unexpected behavior in your application.
Supported System Changes
- 1.1: The minimum Adobe ColdFusion version required is now 8.0.1.
- 1.1: The minimum Railo version required is now 3.1.2.020.
- 1.1: The H2 database engine is now supported.
File System Changes
- 1.1: The .htaccess file has been changed. Be sure to copy over the new one from the new version 1.1 download and copy any addition changes that you may have also made to the original version.
Database Structure Changes
- 1.1: By default, Wheels 1.1 will wrap database queries in transactions. This requires that your database engine supports transactions. For MySQL in particular, you can convert your MyISAM tables to InnoDB to be compatible with this new functionality. Otherwise, to turn off automatic transactions, place a call to
set(transactionMode="none"). - 1.1: Binary data types are now supported.
CFML Code Changes
Model Code
- 1.1: Validations will be applied to some model properties automatically. This may cause unintended behavior with your validations. To turn this setting off, call
set(automaticValidations=false)in config/settings.cfm. - 1.1: The
classargument inhasOne(),hasMany(), andbelongsTo()has been deprecated. Use themodelNameargument instead. - 1.1:
afterFind()callbacks no longer require special logic to handle the setting of properties in objects and queries. (The "query way" works for both cases now.) Becauseargumentswill always be passed in to the method, you can't rely onStructIsEmpty()to determine if you're dealing with an object or not. In the rare cases that you need to know, you can now callisInstance()orisClass()instead. - 1.1: On create, a model will now set the
updatedAtauto-timestamp to the same value as thecreatedAttimestamp. To override this behavior, callset(setUpdatedAtOnCreate=false)inconfig/settings.cfm.
View Code
- 1.1: Object form helpers (e.g.
textField()andradioButton()) now automatically display alabelbased on the property name. If you left thelabelargument blank while using an earlier version of Wheels, some labels may start appearing automatically, leaving you with unintended results. To stop a label from appearing, uselabel=falseinstead. - 1.1: The
contentForLayout()helper to be used in your layout files has been deprecated. Use theincludeContent()helper instead. - 1.1: In
productionmode, query strings will automatically be added to the end of all asset URLs (which includes JavaScript includes, stylesheet links, and images). To turn off this setting, callset(assetQueryString=false)in config/settings.cfm. - 1.1:
stylesheetLinkTag()andjavaScriptIncludeTag()now accept external URLs for thesource/sources argument. If you manually typed out these tags in previous releases, you can now use these helpers instead. - 1.1:
flashMessages(),errorMessageOn(), anderrorMessagesFor()now create camelCasedclassattributes instead (for exampleerror-messagesis nowerrorMessages). The same goes for theclassattribute on the tag that wraps form elements with errors: it is nowfieldWithErrors.
Controller Code
- 1.1.1: The
ifargument in all validation functions is now deprecated. Use theconditionargument instead.
« Previous Chapter
Installation
Installation
^ Top
Table of Contents
Table of Contents
Next Chapter »
Beginner Tutorial: Hello World
Beginner Tutorial: Hello World
Comments
Read and submit questions, clarifications, and corrections about this chapter.

in 1.0.5, a route variable was placed in the variables scope
but in 1.1 RC1 it is placed in the variables.params structure
http://groups.google.com/group/cfwheels/browse_thread/thread/82af28e11dc59fad
Example
routes.cfm
<cfset addRoute(name="fundingbytype", pattern="foa/type/[id]",
controller="foa", action="fundingbytype") />
I had to add the params for the id.
<cffunction name="fundingbytype">
<!--- make sure id is only one of the approved types --->
<cfset var typeList = model("fundingtype").getFundingTypesList() />
<cfif not ListFind(ucase(typeList), ucase(params.id))>
.............
</cffunction>