Migrating from ColdFusion MX or Earlier to ColdFusion 9
ColdFusion 9 is the best release of ColdFusion ever--so of course you want to run your ColdFusion applications on it! :) But how do you get there from where you are now? It depends on what release of ColdFusion you're on currently; this blog post is for those on ColdFusion MX (the releases variously known as ColdFusion MX, ColdFusion MX 6, ColdFusion MX 6.1) or earlier (releases such as ColdFusion 5, ColdFusion 4.5, ColdFusion 4, etc.). If you're on ColdFusion MX 7 (the releases variously known as ColdFusion MX 7, ColdFusion MX 7.0.1, ColdFusion MX 7.0.2, ColdFusion 7, ColdFusion 7.0.1, and ColdFusion 7.0.2) or ColdFusion 8 (the releases variously known as ColdFusion 8, ColdFusion 8.0, and ColdFusion 8.0.1), you should check out the companion blog post to this one.
Since the valid upgrade paths to ColdFusion 9 are from ColdFusion MX 7 and ColdFusion 8, if you are on ColdFusion MX or earlier you cannot upgrade to ColdFusion 9. However, you can still migrate your ColdFusion applications from ColdFusion MX or earlier to ColdFusion 9. Note that unlike the valid upgrade paths available for moving to ColdFusion 9, migrating from ColdFusion MX or earlier to ColdFusion 9 does not allow for automated migration of ColdFusion settings like datasources, mappings, custom tag paths, and so on; instead, you must migrate your ColdFusion MX or earlier settings to ColdFusion 9 manually.
There are two great resources you should check out if you're on ColdFusion 5 or earlier; these were not updated for ColdFusion 9, to a large extent because there really wasn't any need: the concerns involved when migrating from ColdFusion 5 to ColdFusion 9 are generally the same as those involved when migrating from ColdFusion 5 to ColdFusion MX or ColdFusion MX 7. The two resources are the "Migrating ColdFusion 5 Applications" section of the ColdFusion MX LiveDocs and "Migrating Applications to ColdFusion MX 7":
- http://livedocs.adobe.com/coldfusion/6/Migrating_ColdFusion_5_Applications/cf_migration_guide.htm
- http://download.macromedia.com/pub/documentation/en/coldfusion/mx7/cfmx7_migrating.pdf
The ColdFusion team has worked very hard to maintain backward-compatibility in ColdFusion 9 for applications coded for previous versions of ColdFusion: in many cases, your code will simply run without any changes when you move it to ColdFusion 9. But of course you shouldn't just deploy your production applications to ColdFusion 9 and hope they work: you should test your applications fully before deploying them to production. And to get you started with the greatest chance of success, you should first use the ColdFusion Code Compatibility Analyzer to determine if your code is valid for ColdFusion 9:
- http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf3638e6-7fe0.html#WSc3ff6d0ea77859461172e0811cbf3638e6-7fd6
- http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0d04c-7fee.html
I recommend reviewing the tag and function changes to ColdFusion. Be sure to note the addition of functions with names that collide with user-defined functions in your code (for instance, ColdFusion 9 introduced the SpreadsheetNew() function; if your code has a user-defined function called SpreadsheetNew() you will need to change the name of that user-defined function and all references to it in your code before migrating to ColdFusion 9):
- http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17576-7fef.html
- http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec1a60c-7ffa.html
It's very important to read the release notes for ColdFusion 9.0.1 and ColdFusion 9 in case some might apply to your environment:
- http://www.adobe.com/support/documentation/en/coldfusion/releasenotes.html#9
- http://www.adobe.com/support/documentation/en/coldfusion/releasenotes.html#901
There are a couple of blog posts that, while written for moving to previous releases of ColdFusion, are certainly worth perusing:
- http://www.sargeway.com/blog/index.cfm?mode=entry&entry=6DBD3FC6-C29F-05EC-8BC78715AD424685
- http://www.carehart.org/blog/client/index.cfm/2009/8/10/cf8_migration_resources
When you're ready to install ColdFusion 9, make sure your environment is in compliance with the ColdFusion 9 system requirements and systems support matrix, then review my blog post on the installers for ColdFusion 9, and then review the "Installing Adobe ColdFusion 9" documentation:
- http://www.adobe.com/products/coldfusion/systemreqs
- http://blog.joshuaadams.com/index.cfm/2010/6/3/ColdFusion-8-and-9-ColdFusion-Builder-and-Flash-Builder-4-Installers
- http://help.adobe.com/en_US/ColdFusion/9.0/Installing/index.html (HTML version, containing comments from users and Adobe employees)
- http://help.adobe.com/en_US/ColdFusion/9.0/Installing/coldfusion_9_install.pdf (PDF version with no comments)
Once you have installed ColdFusion 9, you'll want to install ColdFusion 9 Update 1 to bring your install up to ColdFusion 9.0.1; for more information, including links to additional information and the installer, on this free update for ColdFusion 9, see the following FAQ:
Next you'll want to check out the Hot Fixes and Cumulative Hot Fixes available for ColdFusion 9.0.1:
And finally, it's extremely important that you check out the security bulletins and advisories for ColdFusion and apply any relevant security Hotfixes--and while you're at it, consider signing up to receive security notifications via the Security Notification Service so you don't miss any security bulletins or advisories for ColdFusion in the future:
- http://www.adobe.com/support/security/#coldfusion
- http://www.adobe.com/cfusion/entitlement/index.cfm?e=szalert
Once you have completed the installation of ColdFusion 9, you will need to manually migrate your settings from your ColdFusion MX or earlier installation to your ColdFusion 9 installation.
As long as you choose to use the built-in web server during installation of ColdFusion 9, your installation of ColdFusion MX or earlier will not be altered or removed by the installation of ColdFusion 9. You will therefore be able to continue running ColdFusion MX or earlier while you test your new ColdFusion 9 installation.
If during installation of ColdFusion 9 you choose to use the same external web server as you are using for ColdFusion MX or earlier, note that the CFIDE and CFDOCS directories in the root of your external web server will be replaced by the CFIDE and CFDOCS directories for ColdFusion 9. If you wish to avoid this, you must instead choose to use the built-in web server during installation of ColdFusion 9. As Michael Collins explains in the following blog post, you can later use the Web Server Configuration Tool to configure your external web server for ColdFusion 9:
If you wish to configure your external web server to work properly with both ColdFusion MX or earlier and ColdFusion 9 on an ongoing basis (as opposed to working with only one release of ColdFusion), you can do so, but you will need to do some manual configuration of your web server; see the following blog post by Adobe Community Expert Charlie Arehart for more information (even if you're not using Microsoft IIS and Microsoft Windows XP, the principles described will apply):
Installing ColdFusion 9 will not uninstall ColdFusion MX or earlier; this is by design: it is possible, and desirable in some circumstances, to run multiple versions of ColdFusion at once. There is no need for you to uninstall ColdFusion MX or earlier once you are no longer using it (note that if you simply stop it from running, the only resource it uses is some space on your hard drive). However, if you wish to uninstall ColdFusion MX or earlier after installing ColdFusion 9, you should first make a backup copy of the CFIDE and cfdocs directories in your web root folder because the uninstallation of ColdFusion MX or earlier can remove these directories. After you uninstall ColdFusion MX or earlier, simply restore these directories from backup. The uninstallation of ColdFusion MX or earlier can also remove "index.cfm" from the list of default documents in your web server. Therefore, if having "index.cfm" listed in your web server as one of the default document is required for your ColdFusion application, you may have to add this listing to your web server after the uninstallation of ColdFusion MX or earlier. See your web server's documentation for information on adding default document listings. Alternatively, you may be able to use the ColdFusion 9 Web Server Configuration Tool to do it for you:
Still have questions? First, visit the Installation section of the ColdFusion Support Center. If you can't find your answer there, feel free to contact me or, particularly if your question is one you believe would benefit other readers of this post, add a comment on this post.
One final note: Adobe offers implementation consulting for a fee and in addition, we have a number of partners who can help you with implementation and troubleshooting; if you would like more information on these offerings, please contact me.


How? I have several Coldfusion 8 applications. All use > 1 datasource. I've had to go back to CF 8 as CF 9 will not allow multiple datasources in one application. Or am I misunderstanding something?
2. MX-or-earlier homegrown apps will not migrate seamlessly to CF9. At my day job, we went from CFMX/SQL2K to CF9/SQL Azure, and learned a lot about migrating to CF9 from CFMX.
But that said, while I stand by my statement "the ColdFusion team has worked very hard to maintain backward-compatibility in ColdFusion 9 for applications coded for previous versions of ColdFusion: in many cases, your code will simply run without any changes when you move it to ColdFusion 9," and as such the blanket statement "MX-or-earlier homegrown apps will not migrate seamlessly to CF9" I'd love to hear more here about your experiences with migrating from ColdFusion MX to ColdFusion 9" is inaccurate, it is certainly true that in many cases that there will be work required in moving applications from ColdFusion MX to ColdFusion 9 (which is precisely why I wrote this blog post!) and I would very much appreciate it if you would write a comment about what it is you learned about migrating from ColdFusion MX to ColdFusion 9.