Hi Miroslav, that’s a nice application :)
You should be able to do the same thing with CouchDB 3.2.0, but you need to do an extra step. In CouchDB 1.x, when opening a a database `foo`, it would open a file at `$database_dir/foo.couch`, very straightforward. In CouchDB 2.x and 3.x, the process has one more step: 1. request to open database `foo` 2. CouchDB looks in its internal database `/_node/_local/dbs` for the document `foo` (/_node/_local/dbs/foo) - The structure of that document is explained in https://docs.couchdb.org/en/stable/cluster/sharding.html#updating-cluster-metadata-to-reflect-the-new-target-shard-s 3. read the shard suffix and the shard range from the document (a single node database created with q=1 will only have one shard range 00000000-ffffffff). - the suffix is in bytes, but they are a regular UNIX timestamp, you’ll have to convert it for use on the file system. 4. open this file now: `$database_dir/shards/00000000-ffffffff/foo.$suffix.couch So to follow your procedure you need to: 1. create a document in the internal _dbs database with the same _id as the database name 2. put the .couch file in the place specified by the shard range and `shards/` subdirectory and match the shard suffix. Voilá Best Jan — Professional Support for Apache CouchDB: https://neighbourhood.ie/couchdb-support/ *24/7 Observation for your CouchDB Instances: https://opservatory.app > On 20. Oct 2021, at 14:56, Miroslav Rodic <rod...@arco011.com> wrote: > > For an application, developed 10 years ago as couchapp with CouchDB 1.1.1, an > OFF-LINE data exchange (synchronization) is implemented by adding the local > .couch file, with randomly generated name, in a .zip file, which is then > sent, by email, to another user and then that user extracts and copies the > received .couch file into the local CouchDB instance. The imported .couch > file is then synchronized with the appropriate local database using > replication. All export/import steps, including the final replication, were > implemented within the application, so there were no problems with non-IT > users understanding how to use it. Since the application is implemented as a > couchapp type, the necessary Erlang functions have been developed that allow > archiving/copying/etc. > > The question follows: is it possible to keep the same approach in off-line > synchronization with the latest version of CouchDB, which is 3.2.0, when the > installed CouchDB is configured as a single node? If this is not possible, > then which solutions are recommended for off-line synchronization? > > Copying of .couch files is not clearly explained in the backup documentation. > A backup assumes, if I understood correctly, that .couch files can be copied > to a secure location, and then, when needed, can be restored by overwriting > the existing .couch files in the data directory. If, for any reason, the > corresponding DB is deleted by using the Fauxton before the .couch files are > reverted back, then reverted .couch files will not be accepted and displayed > in Fauxton. This is the behavior I had on my comp testing the backup/restore > procedure. > > Backup/restore procedure tested on OS X 10.15.7 with CouchDB 3.2.0, where > path to data directory is as follows: ~/Library/Application > Support/CouchDB2/var/lib/couchdb. > > Regards, > Miroslav >