Re: difficulty getting mnesia to work with cowboy web backend

Eric PAILLEAU <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
For you other questions:

'make run' build a release. this need a relx.config file .

for instance :

$> cat relx.config
{release, {bvmb_release, "1"}, [bvmb, orchid, sasl, jason_erl,
runtime_tools, amqp_client]}.
{extended_start_script, true}.
{sys_config, "config/sys.config"}.
{vm_args, "config/vm.args"}.

look at the two last lines which are respectively a file for application
variables and a file for Erlang VM start options.

regards


Le 25/10/2020 à 00:31, jdmeta a écrit :
> 
> 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!
>
signature.asc (application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEE/BqEhJJ84aukOqYB5djqWdYlW+IFAl+VQE4ACgkQ5djqWdYl
W+ItsggAj+kMeyxkedRSBxrUAbTb3ec1GFEGpjl3lDrVH5fugDmX8N/1RMzr7z/k
UYLOShdbHZ6pLOJ4zI2avkR4rjaL+MH6ln2ZU5OXl3fxe6vd9HyhcXiZWYE8BqwO
2vXe0pB3TOy13HxJ7+qxcAzKqG3pRY5J9y/R/CkRhbqa1Z90qB7o9whvFwKYKAGJ
5/Cch0od+SA1Pou7nNCaH01epOHJNP0f7/7o+Cpem+gwijI71o/QZmVAUG5tUz5L
SwPZcIlkldpuUKHxZjctDkjILWzqfl163TQxT47NaQuxW/5uasCAatsGvPzz3hjS
IQdhtD5Pou4Z/HZGDDkNKN0rfWk/jg==
=TnVh
-----END PGP SIGNATURE-----
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.