Making changes directly to Roon database

Roon Core Machine

Intel NUC10i7FNH1, 8GB RAM, 256GB M.2 SSD, 4TB SATA III SSD

Networking Gear & Setup Details

NUC connected via Ethernet to xFi Pod

Connected Audio Devices

NUC connected to Schiit Bifrost DAC via USB

Number of Tracks in Library

Over 100,000 tracks

Description of Issue

I’m switching from Audirvana and was wondering if there’s a way to access and make changes directly to the Roon database on a NUC. I believe that would help me expedite the process of transferring my playlists. Has anyone tried to do something like this before? The database appears to be a directory consisting of .ldb files, which are new to me as I’m not that well-versed in Linux.

I would imagine the answer is no, certainly your system would then be unsupported.
This would probably be better in the Tinkering section, would you like it moved there?

Sure, this is more of a tinkering question. Thanks!

Done. Lots of vpn talk in there. If you search the section you might find some info.

You don’t want to touch those files it will corrupt your DB. Roon uses leveldb and, I’m speaking very generically here, leveldb is an in-memory DB which flushes changes to disk for persistence. What you see on disk is only part of the DB.

You could interact with the DB via leveldb commands but no one has done that (that I’m aware of). It would require reverse engineering the DB structure and, even then, you run the risk of corrupting things if you get this wrong.

You should look into a way to export your playlists to Soundiiz. I believe the latest versions of Roon allow you to import / export from this service. That should give you a faster path than rebuilding manually. Good luck.

4 Likes

I’d reiterate @ipeverywhere’s caution and suggest staying away from the DB if you’re unsure. I’m also an inveterate tinkerer. If I was curious about the levelDB contents I’d start here and extract the contents to a file to examine: GitHub - rchunping/leveldb-tools: import, export or repair leveldb, the toolkit warnings are similar to ip’s…

1 Like

Thank you all for the advice! I’ll look away from the database and look into Soundiiz. Fortunately Roon does make it easy to add multiple albums to a playlist at a time so doing it manually wouldn’t be so bad

Roon can import .m3u playlists. (Although not sure it’s working at the moment.) Audirvana should be able to export .m3u.

Just a question regarding LevelDB:
I have read, that there is a kind of connector between MariaDB and LevelDB.
Is it so, that you can use MariaDB as a high level database management system to manage Leveldb data?

Hi @freejazz I’m guessing here as you don’t provide a name or reference. It might be this Maria DB LevelDB storage engine. This looks like a possible work in progress and reading the development plans it looks a little hopeful/messy. No idea if this has been completed or is still in active development. If working it would allow the use of LevelDB “back-end storage” for MariaDB but it wouldn’t allow you to establish a SQL like view of an arbitrary LevelDB instance, e.g. Roon. The best way of thinking about it might be:

No, it is more a case of using LevelDB to provide a “high performance” storage engine for MariaDB.

I hope this helps.

1 Like

Thank you for your answer, Killdozer.
I only received this short hint from Wikipedia.

But I am afraid it is as you wrote: MariaDB uses LevelDB as a kind of very fast data store.

If not, I would asking me, how that should work - taking a DBMS and put it on a low level (pre-filled) data source. That seams to be a nice wish but no more :disappointed: