mod_migrate/README.markdown
author Matthew Wild <mwild1@gmail.com>
Thu, 28 Jan 2021 07:04:11 +0000
changeset 4413 44f6537f6427
parent 2974 c5122b7633a8
permissions -rw-r--r--
mod_invites_adhoc: Fail contact invite if user is not on current host Only the username was being used, and the host of the requester ignored. Luckily this only affects admins of the host. If they want to create an account they can use the other command. If they want to create a contact they should request from their account on this host.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
     1
---
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
     2
summary: prosodyctl cross storage driver migration tool
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
     3
...
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
1818
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1817
diff changeset
     5
Introduction
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1817
diff changeset
     6
============
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
     8
This module adds a command to `prosodyctl` for copying data between
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
     9
storage drivers.
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    10
1818
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1817
diff changeset
    11
Usage
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1817
diff changeset
    12
=====
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    13
1818
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1817
diff changeset
    14
    prosodyctl mod_migrate example.com <source-store>[-<store-type>] <target-driver> [users]*
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    16
`<source-store>` would be e.g. `accounts` or `private`. To migrate
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    17
archives, the optional suffix `<store-type>` would be set to `archive`,
2485
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    18
so e.g. `archive2-archive` or `muc_log-archive`. Multiple stores can be
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    19
given if separated by commas.
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    21
`<target-driver>` is the storage driver to copy data to, sans the
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    22
`mod_storage_` prefix.
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
2974
c5122b7633a8 mod_migrate: Mention the possible need to supply the list of users
Kim Alvefur <zash@zash.se>
parents: 2828
diff changeset
    24
`mod_migrate` tries to request a list of users from `usermanager`, but
c5122b7633a8 mod_migrate: Mention the possible need to supply the list of users
Kim Alvefur <zash@zash.se>
parents: 2828
diff changeset
    25
this does not always work. If so, you can supply usernames as arguments
c5122b7633a8 mod_migrate: Mention the possible need to supply the list of users
Kim Alvefur <zash@zash.se>
parents: 2828
diff changeset
    26
after the target driver.
c5122b7633a8 mod_migrate: Mention the possible need to supply the list of users
Kim Alvefur <zash@zash.se>
parents: 2828
diff changeset
    27
1795
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
The process is something like this:
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    30
1.  Decide on the future configuration and add for example SQL
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    31
    connection details to your prosody config, but don't change the
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    32
    `store` option yet.
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    33
2.  With Prosody shut down, run
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    34
    `prosodyctl mod_migrate example.com accounts sql`
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    35
3.  Repeat for each store, substituting 'accounts'. E.g. vcards,
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    36
    private...
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    37
4.  Change the [`storage` configuration](https://prosody.im/doc/storage)
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    38
    to use the new driver.
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
    39
5.  Start prosody again.
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    40
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    41
Examples
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    42
========
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    43
2485
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    44
``` sh
2828
e4b04c0c4b15 mod_migrate: Fix missing mod_ prefix in invocation example (thanks asterix)
Kim Alvefur <zash@zash.se>
parents: 2485
diff changeset
    45
prosodyctl mod_migrate example.com accounts,roster,private,vcard sql
2485
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    46
```
1817
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    47
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    48
Compatibility
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    49
=============
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    50
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1816
diff changeset
    51
Should work with 0.8 and later.