1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-08-01 18:18:31 +00:00
Radicale/1to2.md

84 lines
3 KiB
Markdown
Raw Normal View History

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
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.
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:
```shell
2017-07-24 04:27:49 +02:00
$ python3 -m pip install --upgrade radicale==1.1.6
```
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.