annotate mod_migrate/README.markdown @ 5536:96dec7681af8

mod_firewall: Update user marks to store instantly via map store The original approach was to keep marks in memory only, and persist them at shutdown. That saves I/O, at the cost of potentially losing marks on an unclean shutdown. This change persists marks instantly, which may have some performance overhead but should be more "correct". It also splits the marking/unmarking into an event which may be watched or even fired by other modules.
author Matthew Wild <mwild1@gmail.com>
date Thu, 08 Jun 2023 16:20:42 +0100
parents c5122b7633a8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1803
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
1 ---
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
2 summary: prosodyctl cross storage driver migration tool
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
3 ...
1791
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
1814
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1813
diff changeset
5 Introduction
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1813
diff changeset
6 ============
1791
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7
1803
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
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: 1791
diff changeset
9 storage drivers.
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
10
1814
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1813
diff changeset
11 Usage
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1813
diff changeset
12 =====
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
13
1814
7b4e841dcd77 mod_migrate/README: Change headings and adjust usage string
Kim Alvefur <zash@zash.se>
parents: 1813
diff changeset
14 prosodyctl mod_migrate example.com <source-store>[-<store-type>] <target-driver> [users]*
1791
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
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: 1812
diff changeset
17 archives, the optional suffix `<store-type>` would be set to `archive`,
2481
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1976
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: 1976
diff changeset
19 given if separated by commas.
1791
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20
1803
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
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: 1791
diff changeset
22 `mod_storage_` prefix.
1791
8df071457dee mod_migrate: Provides a prosodyctl mod_migrate command for copying data between storage backends
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
2970
c5122b7633a8 mod_migrate: Mention the possible need to supply the list of users
Kim Alvefur <zash@zash.se>
parents: 2824
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: 2824
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: 2824
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: 2824
diff changeset
27
1791
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
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
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: 1812
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: 1812
diff changeset
32 `store` option yet.
1803
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
33 2. With Prosody shut down, run
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
34 `prosodyctl mod_migrate example.com accounts sql`
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
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: 1791
diff changeset
36 private...
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
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: 1812
diff changeset
38 to use the new driver.
1803
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1791
diff changeset
39 5. Start prosody again.
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
40
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
41 Examples
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
42 ========
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
43
2481
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1976
diff changeset
44 ``` sh
2824
e4b04c0c4b15 mod_migrate: Fix missing mod_ prefix in invocation example (thanks asterix)
Kim Alvefur <zash@zash.se>
parents: 2481
diff changeset
45 prosodyctl mod_migrate example.com accounts,roster,private,vcard sql
2481
854aaa1f01b2 mod_migrate/README: Document the ability to specify multiple comma separated stores to migrate
Kim Alvefur <zash@zash.se>
parents: 1976
diff changeset
46 ```
1813
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
47
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
48 Compatibility
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
49 =============
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
50
f02f52a2ee11 mod_migrate: Add support for migrating archives
Kim Alvefur <zash@zash.se>
parents: 1812
diff changeset
51 Should work with 0.8 and later.