close
Warning:
Error with navigation contributor "LoginModule"
- Timestamp:
-
Apr 26, 2012, 4:07:51 PM (13 years ago)
- Author:
-
trac
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v2
|
v3
|
|
1 | 1 | = Upgrade Instructions = |
2 | 2 | [[TracGuideToc]] |
| 3 | [[PageOutline(2-3,,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 === |
75 | 76 | ==== Upgrading from Trac 0.11 to Trac 0.12 ==== |
| 77 | |
76 | 78 | ===== Python 2.3 no longer supported ===== |
77 | 79 | The minimum supported version of python is now 2.4 |
… |
… |
|
87 | 89 | |
88 | 90 | 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. |
| 91 | |
| 92 | ===== Resynchronize the Trac Environment Against the Source Code Repository ===== |
| 93 | |
| 94 | 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: |
| 95 | |
| 96 | {{{ |
| 97 | trac-admin /path/to/projenv repository resync '*' |
| 98 | }}} |
89 | 99 | |
90 | 100 | ===== Improved repository synchronization ===== |
… |
… |
|
127 | 137 | == Known Issues == |
128 | 138 | |
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. |
| 139 | Things you should pay attention to, while upgrading. |
| 140 | |
| 141 | === Customized Templates |
| 142 | |
| 143 | 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 ;-) |
| 144 | |
| 145 | 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. |
| 146 | |
| 147 | === !ZipImportError === |
| 148 | |
| 149 | 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. |
| 150 | See [trac:#7014] for details. |
131 | 151 | |
132 | 152 | === Wiki Upgrade === |
… |
… |
|
137 | 157 | 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 | 158 | |
139 | | == Upgrading Python == |
| 159 | === parent dir === |
| 160 | If you use a trac parent env configuration and one of the plugins in one child does not work, none of the children work. |
| 161 | |
| 162 | == Related topics |
| 163 | |
| 164 | === Upgrading Python === |
140 | 165 | |
141 | 166 | 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 | 167 | |
143 | | === Windows and Python 2.6 === |
| 168 | ==== Windows and Python 2.6 ==== |
144 | 169 | |
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. |
| 170 | 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 | 171 | |
147 | | == Changing Database Backend == |
148 | | === SQLite to PostgreSQL === |
| 172 | === Changing Database Backend === |
| 173 | ==== SQLite to PostgreSQL ==== |
149 | 174 | |
150 | 175 | 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 | 176 | |
152 | | == Older Versions == |
| 177 | === Upgrading from older versions of Trac === #OlderVersions |
153 | 178 | |
154 | 179 | For upgrades from versions older than Trac 0.10, refer first to [trac:wiki:0.10/TracUpgrade#SpecificVersions]. |