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!