gromox-mkprivate(8)

Name
gromox-mkprivate — Tool for creating a blank private store

Synopsis
gromox-mkprivate [-Uv] [-T template_dir] [-c config] [-f] username

Description
mkprivate is used to generate the exchange.sqlite3 file for a private store. mkprivate directly operates on the filesystem, which has implications. First, the program ought to be executed on the correct homeserver in case a multi-server Gromox installation is used. Second, there is no coordination with exmdb_provider(4gx), and exmdb_provider might continue using file descriptors opened earlier, working with the old copy of the mailbox, or get confused because e.g. a WAL file no longer matches the sqlite db. Ideally, you would use something like `gromox-mbop -u ... ( freeze ) ( unload )` to make exmdb_provider close the mailbox before resetting it. Even then, services that build on top of exmdb, such as exchange_emsmdb(4gx) or zcore(8gx), may also get confused when the mailbox (now as an abstract object rather than a concrete file descriptor) or any key characteristics like PR_STORE_RECORD_KEY.

Options

-T path
    This option can be used to override the built-in data path for folder name translations and prepoulated named properties.
    Default: /usr/share/gromox

-U  Rather than creating the SQLite file, upgrade it. (The -f option has no effect.) mkprivate does not coordinate with exmdb_provider(4gx) and data corruption is possible if both try to edit the file at the same time. You should let exmdb_provider(4gx) do upgrades instead, via the "exmdb_schema_upgrades" directive, or at the very least, stop http(8gx)/exmdb_provider when using mkprivate -U.

-c config
    Read configuration directives from the given file. If this option is not specified, /etc/gromox/mysql_adaptor.cfg will be read for MySQL connection parameters if that file exists.

-f  Force overwrite when an existing SQLite database is detected for the user. By default, mkprivate will not touch exchange.sqlite3.

-v  Turn on verbose mode for -U.

--create-old
    Create blank initial database using version 0. (This can be used for testing the upgrade procedure.)

--integrity
    Perform SQLite integrity check, either standalone or, if -U is also given, as part of an upgrade.

-?  Display option summary.

Files

•   data_file_path/folder_names.txt: Translations for essential folders in a message store.

•   data_file_path/propnames.txt: Initial set of named properties to add to the new private store.

•   /var/lib/gromox/.../exmdb/exchange.sqlite3: MAPI object database.

See also
gromox(7), gromox-mkmidb(8), gromox-mkpublic(8), mysql_adaptor(4gx)