|
close
Warning:
- Error with navigation contributor "BrowserModule"
- Failed to sync with repository "(default)": instance.__dict__ not accessible in restricted mode; repository information may be out of date. Look in the Trac log for more information including mitigation strategies.
- Timestamp:
-
Nov 9, 2012, 9:15:33 AM (12 years ago)
- Author:
-
trac
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v5
|
v6
|
|
1 | 1 | = Upgrade Instructions = |
2 | 2 | [[TracGuideToc]] |
| 3 | [[PageOutline(2-4,,inline,unnumbered)]] |
3 | 4 | |
4 | 5 | == Instructions == |
… |
… |
|
6 | 7 | Typically, there are seven steps involved in upgrading to a newer version of Trac: |
7 | 8 | |
8 | | === 1. Update the Trac Code === #UpdatetheTracCode |
| 9 | === 1. Bring your server off-line |
| 10 | |
| 11 | It is not a good idea to update a running server: the server processes may have parts of the current packages cached in memory, and updating the code will likely trigger [#ZipImportError internal errors]. |
| 12 | |
| 13 | === 2. Update the Trac Code === #UpdatetheTracCode |
9 | 14 | |
10 | 15 | Get the new version as described in TracInstall, or your operating system specific procedure. |
… |
… |
|
28 | 33 | This cleanup is not mandatory, but makes it easier to troubleshoot issues later on, as you won't waste your time looking at code or templates from a previous release that are not being used anymore... As usual, make a backup before actually deleting things. |
29 | 34 | |
30 | | === 2. Upgrade the Trac Environment === #UpgradetheTracEnvironment |
| 35 | === 3. Upgrade the Trac Environment === #UpgradetheTracEnvironment |
31 | 36 | |
32 | 37 | Environment upgrades are not necessary for minor version releases unless otherwise noted. |
… |
… |
|
45 | 50 | }}} |
46 | 51 | |
47 | | === 3. Update the Trac Documentation === #UpdatetheTracDocumentation |
| 52 | === 4. Update the Trac Documentation === #UpdatetheTracDocumentation |
48 | 53 | |
49 | 54 | Every [TracEnvironment Trac environment] includes a copy of the Trac documentation for the installed version. As you probably want to keep the included documentation in sync with the installed version of Trac, [TracAdmin trac-admin] provides a command to upgrade the documentation: |
… |
… |
|
54 | 59 | Note that this procedure will leave your `WikiStart` page intact. |
55 | 60 | |
56 | | === 4. Resynchronize the Trac Environment Against the Source Code Repository === |
57 | | |
58 | | Each [TracEnvironment Trac environment] must be resynchronized against the source code repository in order to avoid errors such as "[http://trac.edgewall.org/ticket/6120 No changeset ??? in the repository]" while browsing the source through the Trac interface: |
59 | | |
60 | | {{{ |
61 | | trac-admin /path/to/projenv repository resync '*' |
62 | | }}} |
63 | 61 | |
64 | 62 | === 5. Refresh static resources === |
… |
… |
|
70 | 68 | this will extract static resources and CGI scripts (`trac.wsgi`, etc) from new Trac version and its plugins into `/deploy/path`. |
71 | 69 | |
72 | | Some web browsers cache CSS and Javascript files persistently, so you may need to instruct your users to manually erase the contents of their browser's cache. |
| 70 | Some web browsers (IE, Opera) cache CSS and Javascript files aggressively, so you may need to instruct your users to manually erase the contents of their browser's cache, a forced refreshed (`<F5>`) should be enough. |
| 71 | {{{#!comment |
| 72 | Remove above note once #9936 is fixed. |
| 73 | }}} |
73 | 74 | |
74 | 75 | === 6. Steps specific to a given Trac version === |
| 76 | ==== Upgrading from Trac 0.12 to Trac 1.0 ==== #to1.0 |
| 77 | |
| 78 | The Trac components for Subversion support are no longer enabled by default. To enable the svn support, you need to make sure the `tracopt.versioncontrol.svn` components are enabled, for example by setting the following in the TracIni: |
| 79 | {{{ |
| 80 | [components] |
| 81 | tracopt.versioncontrol.svn.* = enabled |
| 82 | }}} |
| 83 | The upgrade procedure should take care of this and change the TracIni appropriately, unless you already had the svn components explicitly disabled. |
| 84 | |
| 85 | Another step in the automatic upgrade will change the way the attachments are stored. If you're a bit paranoid, you might want to take a backup of the `attachments` directory before upgrading (but if you are, you already did a full copy of the environment, no?). In case the `attachments` directory contains some files which are //not// attachments, the last step of the migration to the new layout will fail: the deletion of the now unused `attachments` directory can't be done if there are still files and folders in it. You may ignore this error, but better go have a look to these files, move them elsewhere and remove the `attachments` directory manually to cleanup the environment. The attachments themselves are now all located in your environment below the `files/attachments` directory. |
| 86 | |
| 87 | |
75 | 88 | ==== Upgrading from Trac 0.11 to Trac 0.12 ==== |
| 89 | |
76 | 90 | ===== Python 2.3 no longer supported ===== |
77 | 91 | The minimum supported version of python is now 2.4 |
… |
… |
|
87 | 101 | |
88 | 102 | This may be of interest to users with only one repository, since there's now a way to avoid the potentially costly resync check at every request. |
| 103 | |
| 104 | ===== Resynchronize the Trac Environment Against the Source Code Repository ===== |
| 105 | |
| 106 | Each [TracEnvironment Trac environment] must be resynchronized against the source code repository in order to avoid errors such as "[http://trac.edgewall.org/ticket/6120 No changeset ??? in the repository]" while browsing the source through the Trac interface: |
| 107 | |
| 108 | {{{ |
| 109 | trac-admin /path/to/projenv repository resync '*' |
| 110 | }}} |
89 | 111 | |
90 | 112 | ===== Improved repository synchronization ===== |
… |
… |
|
127 | 149 | == Known Issues == |
128 | 150 | |
129 | | === parent dir === |
130 | | If you use a trac parent env configuration and one of the plugins in one child does not work, none of the children work. |
| 151 | Things you should pay attention to, while upgrading. |
| 152 | |
| 153 | === Customized Templates |
| 154 | |
| 155 | Trac supports customization of its Genshi templates by placing copies of the templates in the `<env>/templates` folder of your [TracEnvironment environment] or in a common location specified in the [[TracIni#GlobalConfiguration| [inherit] templates_dir]] configuration setting. If you choose to do so, be wary that you will need to repeat your changes manually on a copy of the new templates when you upgrade to a new release of Trac (even a minor one), as the templates will likely evolve. So keep a diff around ;-) |
| 156 | |
| 157 | The preferred way to perform TracInterfaceCustomization is to write a custom plugin doing an appropriate `ITemplateStreamFilter` transformation, as this is more robust in case of changes: we usually won't modify element `id`s or change CSS `class`es, and if we have to do so, this will be documented in the TracDev/ApiChanges pages. |
| 158 | |
| 159 | === !ZipImportError === |
| 160 | |
| 161 | Due to internal caching of zipped packages, whenever the content of the packages change on disk, the in-memory zip index will no longer match and you'll get irrecoverable !ZipImportError errors. Better anticipate and bring your server down for maintenance before upgrading. |
| 162 | See [trac:#7014] for details. |
131 | 163 | |
132 | 164 | === Wiki Upgrade === |
… |
… |
|
137 | 169 | A known issue in some versions of PySqlite (2.5.2-2.5.4) prevents the trac-admin upgrade script from successfully upgrading the database format. It is advised to use either a newer or older version of the sqlite python bindings to avoid this error. For more details see ticket [trac:#9434]. |
138 | 170 | |
139 | | == Upgrading Python == |
| 171 | === parent dir === |
| 172 | If you use a trac parent env configuration and one of the plugins in one child does not work, none of the children work. |
| 173 | |
| 174 | == Related topics |
| 175 | |
| 176 | === Upgrading Python === |
140 | 177 | |
141 | 178 | Upgrading Python to a newer version will require reinstallation of Python packages: Trac of course; also [http://pypi.python.org/pypi/setuptools easy_install], if you've been using that. Assuming you're using Subversion, you'll also need to upgrade the Python bindings for svn. |
142 | 179 | |
143 | | === Windows and Python 2.6 === |
| 180 | ==== Windows and Python 2.6 ==== |
144 | 181 | |
145 | | If you've been using !CollabNet's Subversion package, you may need to uninstall that in favor of [http://alagazam.net/ Algazam], which has the Python bindings readily available (see TracSubversion). The good news is, that works with no tweaking. |
| 182 | If you've been using !CollabNet's Subversion package, you may need to uninstall that in favor of [http://alagazam.net/ Alagazam], which has the Python bindings readily available (see TracSubversion). The good news is, that works with no tweaking. |
146 | 183 | |
147 | | == Changing Database Backend == |
148 | | === SQLite to PostgreSQL === |
| 184 | === Changing Database Backend === |
| 185 | ==== SQLite to PostgreSQL ==== |
149 | 186 | |
150 | 187 | The [http://trac-hacks.org/wiki/SqliteToPgScript sqlite2pg] script on [http://trac-hacks.org trac-hacks.org] has been written to assist in migrating a SQLite database to a PostgreSQL database |
151 | 188 | |
152 | | == Older Versions == |
| 189 | === Upgrading from older versions of Trac === #OlderVersions |
153 | 190 | |
154 | 191 | For upgrades from versions older than Trac 0.10, refer first to [trac:wiki:0.10/TracUpgrade#SpecificVersions]. |
|