The 3D Web Coder

Roomedit CouchDB Update

You may be aware of the roomedit CouchDB app that I implemented for my 2D real-time round-trip cloud-based RoomEditorApp.

Originally implemented in 2013, I migrated it to Revit 2016 for my class on connecting desktop and cloud at the Revit Technology Conference RTC Europe, and created a recording of it preparing to set up the AEC booth at Autodesk University.

My colleague Jaime Rosales Duque had some issues setting up roomedit on his machine, I struggled with the same, and finally @DanTartaglia66 joined the club, as you can see from our discussion in a series of blog post comments.

The gist of all our discussions is that we were unable to find an easy way to upload the roomedit database definition files to CouchDB.

We tried kanso in various flavours, both on Windows and cygwin, replicating via IrisCouch, installing Erica, which requires Erlang, which is built into CouchDB anyway, and so on and so forth.

If you are really interested in the various convoluted details of these failed attempts, you can follow some of our them by studying our email thread including lots of screen snapshots.

In the end, we followed the simplest possible advice given on how to make file system backups:

There are three types of variable data files to backup:

Actually, you can copy a live database file from the OS at anytime without problem. Doesn't matter if its being updated, or even if its being compacted, the CouchDB never-overwrite storage format ensures it should just work without issue.

For all platforms, locate your database, configuration, and log files and perform a file system copy. Be careful to preserve file permissions, too. Archive these files to wherever you want – ideally on a different machine in a different physical location – with appropriate security limiting access.

I followed that advice and simply transferred the copy of my hard disk CouchDB database definition files from Program Files (x86)\Apache Software Foundation\CouchDB\var\lib\couchdb to the destination machine.

This solved the problem for Dan as well, and he suggested I share them with you too, so here they are, included below.

This is a summary of our conversation about this:

Dan: I cannot seem to get the Room Editor to display. I installed both the RoomEditorApp and Roomedit CouchDB, didn't change any code, all seems to work correctly, it's using the localhost. If I go to CouchDB and to Futon I see 'roomedit' but I cannot figure out how to see/get the Room Editor open.

Jeremy: Glad to hear of your interest.

Do you see the room editor in the couchdb management console?

Then the room editor should appear at

Dan: I see roomedit. The link you replied with does not work in any browser.

Roomedit

Jeremy: Oh dear, that is strange and unfortunate.

I see it at

Then, as I navigate through the project - level - room hierarchy, I move on to:

I would have expected that it automatically work once you see it in the CouchDB utils console.

What do you see in the browser JavaScript debugging console?

Dan: I've attached all the images. Am I missing something? Thanks for the help and time.

Roomedit

Jeremy: How about this simpler URL?

What does that return?

Look at my result below.

Roomedit

Dan: It returns this JSON:

{"db_name":"roomedit","doc_count":19,"doc_del_count":0,"update_seq":181,"purge_seq":0,"compact_running":false,"disk_size":401512,"data_size":15646,"instance_start_time":"1449760223302001","disk_format_version":6,"committed_update_seq":181}

Here is a screen snapshot:

Roomedit

Jeremy: That looks pretty good, actually. At least the database is there. On other hand, maybe it is something you set up yourself in a different manner, and maybe the appropriate design documents, such as index.html, are missing.

How did you set up the database, i.e., transfer the roomedit database definition from the files on the hard disk into CouchDB?

Dan: I honestly do not remember, guess I'm getting old :-(.

Jeremy: Jaime and I had quite a struggle doing so setting up the AEC booth at AU.

In the end, we copied a zip file of my existing database definition onto the new machine.

We could not get Kanso et al to work.

Dan: Is it possible to get your zipfile or would that not help?

Jeremy: Sure I can send you that. Here is roomedit_couchdb.zip containing all you need.

I created it using this command line:

C:\>zip -r roomedit_couchdb "Program Files (x86)\Apache Software Foundation\CouchDB\var\lib\couchdb"

Note that it includes the full path, so unpack it carefully, e.g. in a temporary directory, then move the files to your couchdb installation.

Dan: Works fine with your db files, all I had to do is overwrite mine and all worked correctly. I’m pretty sure I followed your original instructions and the info on Couch website. You may want to post the files on your blog for others.

Thanks for your time and all your help!