difficulty getting mnesia to work with cowboy web backend

jdmeta <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
i'm building a web backend using cowboy and mnesia.
at this point i'm running mnesia on only one node and don't need 
distributed mnesia for the foreseeable future.

i installed cowboy and bootstrapped my cowboy app per the instructions 
in the cowboy user guide on ninenines.eu.
i run my cowboy app with "make run" which uses the rather involved 
"erlang.mk" makefile in the ninenines repo.

i need to specify that my cowboy app is dependent on the mnesia app.
i edited "Makefile" in my app's root directory and added "mnesia" to the 
DEPS variable.
when i then execute "make run" i get "Error: Unknown or invalid 
dependency: mnesia."

when i execute "make run", erlang.mk appears to automatically construct 
ebin/<my_app>.app - no doubt using some other input which i haven't 
found yet.
if i manually edit ebin/<my_app>.app to add mnesia to the "applications" 
tuple then mnesia runs as expected.

how do i specify that my cowboy app is dependent on mnesia such that the 
<my_app>.app config file gets constructed correctly every time i execute 
"make run"?

but wait, there's more... :(

i constructed an mnesia schema in a particular directory under the 
cowboy app directory hierarchy.
i need to specify this directory to mnesia which apparently can only be 
done using the "-mnesia dir <Dir>" option to erl.

is there any other way to do this?
why isn't the schema directory an argument to mnesia:start()?
that seems much more intuitive.

back again to the gigantic erlang.mk where i found where the erl command 
that runs erts which in turn runs my cowboy app.
i added the "-mnesia dir <Dir>" option to the erl command line, but 
mnesia is still not finding my pre-defined schema - it's running in 
ram-only mode which means it didn't find a pre-defined schema.

i can run erl manually in the directory above the directory where my 
pre-defined schema is located, and see that the schema is there and it's 
configured as i expected.

when executing "make run" (navigating through the erlang.mk maze), how 
do i get mnesia to see the schema directory when it's launched by the 
cowboy app?
do i need to pass an argument to some start() function?
does erlang.mk need to be modified or one of its inputs modified?

thanx for any assistance!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.