Skip to content

KAZOO Support Channels

This documentation is curated by 2600Hz as part of the KAZOO open source project. Join our community forums here for peer support. Only features in the space are included as part of our 2600Hz Support Services plan.

How to take a database in KAZOO to disk for FixtureDB#

It is helpful to do testing in KAZOO when developing a feature or testing a fix. However, to put all that work into a repeatable test when it involves the database is challenging with FixtureDB when the dataset is large.

This guide will show the steps to take an existing database and populate the FixtureDB filesystem with the appropriate files and view indexes.

Database to disk#

Let's say you need account db 9c2e035c8559b175e58146f6a31a3e67 to persist to FixtureDB. kz_fixturedb_maintenance:db_to_disk(<<"9c2e035c8559b175e58146f6a31a3e67">>). will write all the JSON objects in the database to disk. If you want to be selective on which documents to persist, kz_fixturedb_maintenance:db_to_disk(<<"account%2F9c%2F2e%2F035c8559b175e58146f6a31a3e67">>, FilterFun). will do the job. FilterFun is a function of arity-1 that takes the document as an argument and returns a boolean() for whether to persist the document.

View index to disk#

FixtureDb requires the view index of a query to be statically configured into a file. Accomplish this by passing the relevant options into the following function:

kz_fixturedb_util:view_index_to_disk(<<"account%2F9c%2F2e%2F035c8559b175e58146f6a31a3e67">>, <<"design/view">>, [include_docs]).

This will create the appropriately named view index design+view-{options_hash}.json and populate it with the results.