= Upgrade Instructions = [[TracGuideToc]] Trac environments sometimes need to be upgraded before they can be used in a new version of Trac. This document describes the steps necessary to upgrade an environment. '''Note''': ''Environment upgrades are not necessary for minor version releases unless otherwise noted. For example, there's no need to upgrade a Trac environment created with (or upgraded) 0.8.0 when installing 0.8.4 (or any other 0.8.x release).'' == Upgrade Synopsis == A typical upgrade looks like the following: 1. you upgrade the Trac source code - from the trunk, or from another official release 2. you run the upgrade command to bring the SQL DB up-to-date with the new Trac engine. The table structure changes over time, so it is versioned, and the upgrade command looks for the current version of the DB and the one required by the engine, and performs an upgrade if required. If you fail to upgrade the DB, you'll end up with an "Internal server error", most of the time. 3. optionally, you run the "wiki upgrade" to bring the original Wiki pages up-to-date 4. optionally, you run the "resync" command to sync the Trac SVN DB with the current Subversion repository state. == From 0.7.x to 0.8 == The database schema was changed between 0.7.x and 0.8. Existing environments must be upgraded before they can be used with Trac 0.8. The following command will automatically perform the upgrade: {{{ $ trac-admin /path/to/projectenv upgrade }}} Trac environments are created with a default set of wiki pages. It's recommended to update these pages on existing environments whenever Trac is upgraded to get up-to-date documentation and additional functionality. The following command will perform the update: {{{ $ trac-admin /path/to/projectenv wiki upgrade }}} 0.8 adds a new roadmap feature which requires additional permissions. While a fresh installation will by default grant ROADMAP_VIEW and MILESTONE_VIEW permissions to anonymous, these permissions have to be granted manually when upgrading: {{{ $ trac-admin /path/to/projectenv permission add anonymous MILESTONE_VIEW $ trac-admin /path/to/projectenv permission add anonymous ROADMAP_VIEW }}} == Upgrading sqlite from 2.x to 3.x == The database formats used by sqlite 2.x and sqlite 3.x are incompatible. If you upgrade your sqlite version (this can also happen implicitly if you upgrade pysqlite) then you must convert your database. To do this, install both sqlite 2.8 and sqlite 3.x (they have different filenames so can coexist in the same directory), then use the following commands (Windows): {{{ c:\...> ren trac.db trac2.db c:\...> sqlite trac2.db .dump | sqlite3 trac.db }}} (Unix/Linux would be similar but with mv instead of ren) Then when you're happy with the conversion and tested everything ''(of course!)'' you can delete the trac2.db file. For more information see http://www.sqlite.org/version3.html ----- See also: TracGuide, TracInstall