2016-08-11 19:03:50 +02:00
|
|
|
|
---
|
|
|
|
|
layout: page
|
2017-06-17 02:32:07 +02:00
|
|
|
|
title: Migration from 1.x.x to 2.x.x
|
2016-08-11 19:03:50 +02:00
|
|
|
|
permalink: /1to2/
|
|
|
|
|
---
|
2016-12-08 12:28:40 +01:00
|
|
|
|
|
|
|
|
|
## Why a Migration?
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
Radicale 2.x.x is different from 1.x.x, here's everything you need to know about
|
2016-12-08 12:28:40 +01:00
|
|
|
|
this! **Please read this page carefully if you want to update Radicale.**
|
|
|
|
|
|
|
|
|
|
You'll also find extra information
|
|
|
|
|
in [issue #372](https://github.com/Kozea/Radicale/issues/372).
|
|
|
|
|
|
|
|
|
|
### Python 3 Only
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
Radicale 2.x.x works with Python >= 3.3, and **doesn't work anymore with
|
2016-12-08 12:28:40 +01:00
|
|
|
|
Python 2**.
|
|
|
|
|
|
|
|
|
|
(No, Python 3.3 is not new, it's been released more than 4 years ago.
|
|
|
|
|
Debian stable provides Python 3.4.)
|
|
|
|
|
|
|
|
|
|
### Dependencies
|
|
|
|
|
|
|
|
|
|
Radicale now depends on [VObject](https://eventable.github.io/vobject/), a
|
|
|
|
|
"full-featured Python package for parsing and creating iCalendar and vCard
|
|
|
|
|
files". That's the price to pay to correctly read crazy iCalendar files and
|
|
|
|
|
**support date-based filters, even on recurring events**.
|
|
|
|
|
|
|
|
|
|
### Storage
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
Calendars and address books are stored in a different way between 1.x.x and 2.x.x
|
|
|
|
|
versions. **Launching 2.x.x without migrating your collections first will not
|
2016-12-08 12:28:40 +01:00
|
|
|
|
work, Radicale won't be able to read your previous data.**
|
|
|
|
|
|
|
|
|
|
There's now only one way to store data in Radicale: collections are stored as
|
|
|
|
|
folders and events / contacts are stored in files. This new storage is close to
|
|
|
|
|
the `multifilesystem`, but **it's now thread-safe, with atomic writes and file
|
2017-05-24 19:13:47 +02:00
|
|
|
|
locks**. Other storage types can be used by creating
|
|
|
|
|
[plugins]({{ site.baseurl }}/plugins/).
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
To migrate data to Radicale 2.x.x the command line argument
|
2017-07-24 02:56:48 +02:00
|
|
|
|
``--export-storage`` was added to Radicale 1.1.x.
|
2017-05-24 19:13:47 +02:00
|
|
|
|
Start Radicale 1.x.x as you would normally do, but add the argument
|
|
|
|
|
``--export-storage path/to/empty/folder``. Radicale will export the storage
|
|
|
|
|
into the specified folder. This folder can be directly used with the
|
2017-06-17 02:32:07 +02:00
|
|
|
|
default storage backend of Radicale 2.x.x.
|
2016-12-08 12:28:40 +01:00
|
|
|
|
|
2017-08-11 16:43:32 +02:00
|
|
|
|
If you import big calendars or address books into Radicale 2.x.x the first
|
|
|
|
|
request might take a long time, because it has to initialize its internal
|
|
|
|
|
caches. Clients can time out, subsequent requests will be much faster.
|
|
|
|
|
|
2017-08-25 19:13:24 +02:00
|
|
|
|
You can check the imported storage for errors by starting Radicale >= 2.1.5
|
|
|
|
|
with the ``--verify-storage`` argument.
|
|
|
|
|
|
2017-07-24 04:27:49 +02:00
|
|
|
|
You can install version 1.1.6 with:
|
2017-06-25 11:56:23 +02:00
|
|
|
|
|
|
|
|
|
```shell
|
2017-07-24 04:27:49 +02:00
|
|
|
|
$ python3 -m pip install --upgrade radicale==1.1.6
|
2017-06-25 11:56:23 +02:00
|
|
|
|
```
|
|
|
|
|
|
2016-12-08 12:28:40 +01:00
|
|
|
|
### Authentication
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
**Radicale 2.x.x only provides htpasswd authentication out-of-the-box.** Other
|
2017-05-24 19:13:47 +02:00
|
|
|
|
authentication methods can be added by creating or using
|
|
|
|
|
[plugins]({{ site.baseurl }}/plugins/).
|
2016-12-08 12:28:40 +01:00
|
|
|
|
|
|
|
|
|
### Rights
|
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
In Radicale 2.x.x, rights are managed using regex-based rules based on the
|
2016-12-08 12:28:40 +01:00
|
|
|
|
login of the authenticated user and the URL of the resource. Default
|
|
|
|
|
configurations are built in for common cases, you'll find more about this on
|
2017-05-24 19:13:47 +02:00
|
|
|
|
the [Authentication & Rights]({{ site.baseurl }}/rights/) page.
|
|
|
|
|
|
|
|
|
|
Other rights managers can be added by creating
|
|
|
|
|
[plugins]({{ site.baseurl }}/plugins/).
|
|
|
|
|
|
|
|
|
|
### Versioning
|
2016-12-08 12:28:40 +01:00
|
|
|
|
|
2017-06-17 02:32:07 +02:00
|
|
|
|
Support for versioning with **git** was removed from Radicale 2.x.x.
|
2017-05-24 19:13:47 +02:00
|
|
|
|
Instead, the configuration option ``hook`` in the ``storage`` section was added,
|
|
|
|
|
the [Collection Versioning]({{ site.baseurl }}/versioning/) page explains its
|
|
|
|
|
usage for version control.
|