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-----