annotate docs/upgrade.rst @ 7539:22da5f258118

pullrequests: prevent XSS in 'Potential Reviewers' list when first and last names cannot be trusted The user information passed to autocompleteFormatter from select2 is the raw data which might contain HTML markup controlled by the user. That could cause XSS issues, already when loading a PR page. To avoid that, make sure autocompleteHighlightMatch always escape user information. That makes the user safe as long as a rogue user isn't selected ...
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 27 Feb 2019 02:23:26 +0100
parents 874ed3e58579
children de92f48c1375
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
1 .. _upgrade:
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
2
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
3 ===================
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
4 Upgrading Kallithea
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
5 ===================
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
6
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
7 This describes the process for upgrading Kallithea, independently of the
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
8 Kallithea installation method.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
9
6013
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
10 .. note::
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
11 If you are upgrading from a RhodeCode installation, you must first
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
12 install Kallithea 0.3.2 and follow the instructions in the 0.3.2
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
13 README to perform a one-time conversion of the database from
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
14 RhodeCode to Kallithea, before upgrading to the latest version
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
15 of Kallithea.
0b6d2ca7175f db: drop RhodeCode compatibility (database rebranding etc.)
Søren Løvborg <sorenl@unity3d.com>
parents: 5954
diff changeset
16
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
17
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
18 1. Stop the Kallithea web application
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
19 -------------------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
20
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
21 This step depends entirely on the web server software used to serve
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
22 Kallithea, but in any case, Kallithea should not be running during
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
23 the upgrade.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
24
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
25 .. note::
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
26 If you're using Celery, make sure you stop all instances during the
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
27 upgrade.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
28
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
29
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
30 2. Create a backup of both database and configuration
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
31 -----------------------------------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
32
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
33 You are of course strongly recommended to make backups regularly, but it
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
34 is *especially* important to make a full database and configuration
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
35 backup before performing a Kallithea upgrade.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
36
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
37 Back up your configuration
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
38 ^^^^^^^^^^^^^^^^^^^^^^^^^^
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
39
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
40 Make a copy of your Kallithea configuration (``.ini``) file.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
41
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
42 If you are using :ref:`rcextensions <customization>`, you should also
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
43 make a copy of the entire ``rcextensions`` directory.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
44
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
45 Back up your database
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
46 ^^^^^^^^^^^^^^^^^^^^^
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
47
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
48 If using SQLite, simply make a copy of the Kallithea database (``.db``)
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
49 file.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
50
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
51 If using PostgreSQL, please consult the documentation for the ``pg_dump``
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
52 utility.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
53
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
54 If using MySQL, please consult the documentation for the ``mysqldump``
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
55 utility.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
56
6214
f973b866fffc Turbogears2 migration: use sqlalchemy.url iso sqlalchemy.db1.url
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6023
diff changeset
57 Look for ``sqlalchemy.url`` in your configuration file to determine
7494
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
58 database type, settings, location, etc. If you were running Kallithea 0.3.x or
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
59 older, this was ``sqlalchemy.db1.url``.
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
60
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
61
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
62 3. Activate the Kallithea virtual environment (if any)
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
63 ------------------------------------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
64
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
65 Verify that you are using the Python environment that you originally
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
66 installed Kallithea in by running::
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
67
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
68 pip freeze
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
69
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
70 This will list all packages installed in the current environment. If
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
71 Kallithea isn't listed, activate the correct virtual environment.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
72 See the appropriate installation page for details.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
73
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
74
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
75 4. Install new version of Kallithea
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
76 -----------------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
77
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
78 Please refer to the instructions for the installation method you
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
79 originally used to install Kallithea.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
80
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
81 If you originally installed using pip, it is as simple as::
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
82
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
83 pip install --upgrade kallithea
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
84
7491
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
85 If you originally installed from version control, assuming you did not make
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
86 private changes (in which case you should adapt the instructions accordingly)::
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
87
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
88 cd my-kallithea-clone
7491
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
89 hg parent # make a note of the original revision
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
90 hg pull
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
91 hg update
634c2fa427e8 docs: upgrade: make upgrade instructions from version control more explicit
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7490
diff changeset
92 hg parent # make a note of the new revision
6748
29e9cb56f26f docs: recommend --upgrade for all pip installations in a virtualenv
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6555
diff changeset
93 pip install --upgrade -e .
7055
6ef837acb0d2 less: don't distribute the generated style.css file - for now, it must be built with npm after installing Kallithea
domruf <dominikruf@gmail.com>
parents: 6748
diff changeset
94
7490
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
95 .. _upgrade_config:
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
96
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
97
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
98 5. Upgrade your configuration
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
99 -----------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
100
6555
213085032127 gearbox: make a make-config sub-command available again
Mads Kiilerich <madski@unity3d.com>
parents: 6554
diff changeset
101 Run the following command to create a new configuration (``.ini``) file::
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
102
7406
7784a1212471 cli: convert 'gearbox make-config' into 'kallithea-cli config-create'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7378
diff changeset
103 kallithea-cli config-create new.ini
6555
213085032127 gearbox: make a make-config sub-command available again
Mads Kiilerich <madski@unity3d.com>
parents: 6554
diff changeset
104
7494
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
105 Then compare it with your old config file and copy over the required
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
106 configuration values from the old to the new file.
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
107
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
108 .. note::
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
109 Please always make sure your ``.ini`` files are up to date. Errors
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
110 can often be caused by missing parameters added in new versions.
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
111
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
112 .. _upgrade_db:
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
113
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
114
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
115 6. Upgrade your database
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
116 ------------------------
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
117
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
118 .. note::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
119 If you are *downgrading* Kallithea, you should perform the database
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
120 migration step *before* installing the older version. (That is,
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
121 always perform migrations using the most recent of the two versions
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
122 you're migrating between.)
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
123
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
124 First, run the following command to see your current database version::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
125
7490
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
126 alembic -c new.ini current
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
127
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
128 Typical output will be something like "9358dc3d6828 (head)", which is
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
129 the current Alembic database "revision ID". Write down the entire output
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
130 for troubleshooting purposes.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
131
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
132 The output will be empty if you're upgrading from Kallithea 0.3.x or
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
133 older. That's expected. If you get an error that the config file was not
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
134 found or has no ``[alembic]`` section, see the next section.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
135
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
136 Next, if you are performing an *upgrade*: Run the following command to
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
137 upgrade your database to the current Kallithea version::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
138
7490
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
139 alembic -c new.ini upgrade head
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
140
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
141 If you are performing a *downgrade*: Run the following command to
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
142 downgrade your database to the given version::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
143
7490
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
144 alembic -c new.ini downgrade 0.4
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
145
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
146 Alembic will show the necessary migrations (if any) as it executes them.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
147 If no "ERROR" is displayed, the command was successful.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
148
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
149 Should an error occur, the database may be "stranded" half-way
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
150 through the migration, and you should restore it from backup.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
151
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
152 Enabling old Kallithea config files for Alembic use
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
153 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
154
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
155 Kallithea configuration files created before the introduction of Alembic
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
156 (i.e. predating Kallithea 0.4) need to be updated for use with Alembic.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
157 Without this, Alembic will fail with an error like this::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
158
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
159 FAILED: No config file 'my.ini' found, or file has no '[alembic]' section
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
160
7490
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
161 .. note::
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
162 If you followed this upgrade guide correctly, you will have created a
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
163 new configuration file in section :ref:`Upgrading your configuration
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
164 <upgrade_config>`. When calling Alembic, make
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
165 sure to use this new config file. In this case, you should not get any
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
166 errors and the below manual steps should not be needed.
14e8dcffd279 docs: upgrade: clarify database upgrade instructions
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7437
diff changeset
167
6023
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
168 If Alembic complains specifically about a missing ``alembic.ini``, it is
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
169 likely because you did not specify a config file using the ``-c`` option.
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
170 On the other hand, if the mentioned config file actually exists, you
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
171 need to append the following lines to it::
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
172
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
173 [alembic]
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
174 script_location = kallithea:alembic
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
175
9fd64dd2617d docs: document how to use Alembic for database migrations
Søren Løvborg <sorenl@unity3d.com>
parents: 6014
diff changeset
176 Your config file should now work with Alembic.
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
177
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
178
7492
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
179 7. Prepare the front-end
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
180 ------------------------
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
181
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
182 Starting with Kallithea 0.4, external front-end dependencies are no longer
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
183 shipped but need to be downloaded and/or generated at installation time. Run the
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
184 following command::
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
185
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
186 kallithea-cli front-end-build
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
187
a2abde4062ec docs: upgrade: front-end should be built for all installation methods
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7491
diff changeset
188
7493
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
189 8. Rebuild the Whoosh full-text index
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
190 -------------------------------------
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
191
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
192 It is recommended that you rebuild the Whoosh index after upgrading since
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
193 new Whoosh versions can introduce incompatible index changes.
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
194
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
195
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
196 9. Start the Kallithea web application
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
197 --------------------------------------
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
198
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
199 This step once again depends entirely on the web server software used to
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
200 serve Kallithea.
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
201
7494
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
202 If you were running Kallithea 0.3.x or older and were using ``paster serve
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
203 my.ini`` before, then the corresponding command in Kallithea 0.4 and later is::
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
204
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
205 gearbox serve -c new.ini
874ed3e58579 docs: upgrade: misc. clarification on upgrade from 0.3.x to 0.4
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7493
diff changeset
206
7493
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
207 Before starting the new version of Kallithea, you may find it helpful to
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
208 clear out your log file so that new errors are readily apparent.
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
209
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
210 .. note::
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
211 If you're using Celery, make sure you restart all instances of it after
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
212 upgrade.
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
213
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
214
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
215 10. Update Git repository hooks
b3644eeee445 docs: upgrade: recreating git hooks can only be done after starting Kallithea
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7492
diff changeset
216 -------------------------------
7378
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
217
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
218 It is possible that an upgrade involves changes to the Git hooks installed by
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
219 Kallithea. As these hooks are created inside the repositories on the server
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
220 filesystem, they are not updated automatically when upgrading Kallithea itself.
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
221
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
222 To update the hooks of your Git repositories:
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
223
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
224 * Go to *Admin > Settings > Remap and Rescan*
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
225 * Select the checkbox *Install Git hooks*
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
226 * Click the button *Rescan repositories*
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
227
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
228 .. note::
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
229 Kallithea does not use hooks on Mercurial repositories. This step is thus
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
230 not necessary if you only have Mercurial repositories.
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
231
415cc651bd83 docs: upgrade: add section on updating git hooks
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7099
diff changeset
232
5954
8075ec3d0233 docs: restructure Kallithea upgrade instructions
Søren Løvborg <sorenl@unity3d.com>
parents:
diff changeset
233 .. _virtualenv: http://pypi.python.org/pypi/virtualenv