Migrating from 3.2 to 3.5 (database schemas)
Asked by kevin mcvey:

I'm running Confluence 3.2 on a Windows 2003 Enterprise server. On the same server i'm running a MSSQL 2005 database to store the data. Want to upgrade to 4.0 but upgrade notes say i need to upgrade to 3.5 first. Downloaded the Windows zip file and extracted it onto the same server. My problem is how do i migrate the data from 3.2 database schema to 3.5 database schema? The 3.5 database schema is different than the 3.2. If I try to run 3.5 while pointing to the 3.2 database I get alot of cmd_"table_name" not found errors. I've tried running the 3.5 setup wizard but only see options to create a new database. Been trying to figure this out for days now.

Any help is greatly appreciated.


Answers:
author: LuizA
body: Hello Kevin,

In this case to migrate your data to the new version and to complete the upgrade you have to follow a kind of default procedure, that would be the following:

a) Backup your data:  

\* Create a backup or dump of your database using tools provided by your database  
\* Create a file system backup of your Confluence home directory  

b) Extract the zip/tar.gz file of the latest version of Confluence on the place you choose.  

c) Into the extracted folder, open the file confluence-init.properties, which is located at Confluence install directory\\confluence\\web-inf\\classes and edit the line: confluence.home=/usr/local/confluence/home to point to the path where is your new home folder of your Confluence (from backup).  

d) On Confluence home folder, there is the confluence.cfg.xml file, the connections settings to your data base are saved into this file. If you have changed the name of your database server, database name, database user name or password, you need to edit this file to modify to your new parameters (from backup).  

e) User management integration:  

If you have delegated your user management to JIRA, LDAP, Crowd, or any other external user management system, copy the following files from your old Confluence installation to your new Confluence installation:  

\* \<Installation-Directory\>/confluence/WEB-INF/classes/osuser.xml.  
\* \<Installation-Directory\>/confluence/WEB-INF/classes/atlassian-user.xml (if you are upgrading from Confluence 2.2 or later).  

If you are upgrading from an earlier version of Confluence (2.5.5 and earlier) and are copying your existing atlassian-user.xml file from your previous instance, please ensure that the hibernate cache parameter in this file has been enabled, to avoid performance related issues. (NOTE: If you use Crowd for your user management, you do not need to do this.):  

\* \<hibernate name="Hibernate Repository" key="hibernateRepository" description="Hibernate Repository" cache="true" /\>  

If you have delegated your user management to Crowd, you will also need to copy the Crowd client library and configuration files from your old Confluence installation to your new Confluence installation:  

\* \<Installation-Directory\>/confluence/WEB-INF/lib/crowd-integration-client-X.X.X.jar and \<Installation-Directory\>/confluence/WEB-INF/classes/crowd.properties.  
\* NOTE: This steps is not needed if you are upgrading Confluence to version 3.5.x  

If you need more information, please refer to this article - <http://confluence.atlassian.com/display/CROWD/Integrating+Crowd+with+Atlassian+Confluence>.  

f) Start your new Confluence instance.  

Additional information:  

\* Please consult this article - <http://confluence.atlassian.com/display/DOC/Database+Setup+Guides> about data base setup and JDBC drivers.  
\* Into the confluence.cfg.xml file, the parameter you might need to edit are:  

\<property name="hibernate.connection.password"\>database_password\</property\>  
\<property name="hibernate.connection.url"\>jdbc:mysql://database_server_name/database_name?autoReconnect=true\</property\>  
\<property name="hibernate.connection.username"\>database_username\</property\>  

Also, more information about upgrading Confluence can be found in this link - <http://confluence.atlassian.com/display/DOC/Upgrading+Confluence>.

So in the case during an upgrade what you need to do about the database would be to point your new install to your backup from the previous version, then the new tables will be automatically created and the DB will be ready for the new version. The best approach to upgrade the instance is to follow the above procedure.

Hope this helps.

Kind Regards,

LJ.