From: Anastasia G. <er...@er...> - 2004-06-23 12:34:12
|
Hello. Thanks for helping. I have another problem with yaws: I whote a little programm that should to setup a Mnesia database (below). That programm excellent workss as erl -name asd -mnesia dir '"/path"' -s jinit I decided to run it as runmod of yaws. But this way does not work at all, it breaks at mnesia:system_info() -- it says {error,{'yaws@ermine.home',{already_exists,'yaws@ermine.home'}}} Where it already exists, if mnesia dir is empty at whole? %%%% %jinit.erl start() -> case mnesia:system_info(extra_db_nodes) of [] -> mnesia:create_schema([node()]); _ -> ok end, mnesia:start(), mnesia:create_table(users, [{disc_only_copies, [node()]}, {type, set}, {attributes, record_info(fields, users)}]), mnesia:create_table(session, [{disc_copies, [node()]}, {type, ordered_set}, {attributes, record_info(fields, session}]), mnesia:wait_for_tables(mnesia:system_info(local_tables), infinity). ermine |
From: <mic...@er...> - 2004-06-23 13:04:05
|
On Wed, 23 Jun 2004 16:34:07 +0400, Anastasia Gornostaeva <er...@er...> wrote: > Hello. > > Thanks for helping. > > I have another problem with yaws: I whote a little programm that should > to > setup a Mnesia database (below). > That programm excellent workss as erl -name asd -mnesia dir '"/path"' -s > jinit > I decided to run it as runmod of yaws. But this way does not work at all, > it breaks at mnesia:system_info() -- it says > {error,{'yaws@ermine.home',{already_exists,'yaws@ermine.home'}}} > Where it already exists, if mnesia dir is empty at whole? Did you start Yaws using the option to set the mnesia dir to the correct path ? yaws -M dir -- start Mnesia in dir -- Mickaël Rémond http://www.erlang-projects.org/ |
From: Anastasia G. <er...@er...> - 2004-06-23 13:33:34
|
On Wed, Jun 23, 2004 at 03:03:38PM +0200, Micka?l R?mond wrote: > On Wed, 23 Jun 2004 16:34:07 +0400, Anastasia Gornostaeva > <er...@er...> wrote: > > >Hello. > > > >Thanks for helping. > > > >I have another problem with yaws: I whote a little programm that should > >to > >setup a Mnesia database (below). > >That programm excellent workss as erl -name asd -mnesia dir '"/path"' -s > >jinit > >I decided to run it as runmod of yaws. But this way does not work at all, > >it breaks at mnesia:system_info() -- it says > >{error,{'yaws@ermine.home',{already_exists,'yaws@ermine.home'}}} > >Where it already exists, if mnesia dir is empty at whole? > > Did you start Yaws using the option to set the mnesia dir to the correct > path ? > > yaws -M dir -- start Mnesia in dir Of course. Btw, sometimes those tables appears when i run yaws twice. I.e. run it and exit and run again. Weird. ermine |
From: <mic...@er...> - 2004-06-23 13:48:27
|
On Wed, 23 Jun 2004 17:33:51 +0400, Anastasia Gornostaeva <er...@er...> wrote: > Of course. > Btw, sometimes those tables appears when i run yaws twice. > I.e. run it and exit and run again. Weird. Hum. Why do you think they should not appears ? Mnesia database schema are persistent. Their are kept in the Mnesia dir from one execution to another. If you want table to disappear you have to "drop" them. If you want to always start whith an empty environment for Mnesia you can remove all database files from the Mnesia dir (DCD, DCL, DAT and LOG files). Use a separate dir for Mnesia file to avoid deleting file you might need and do a backup before... I hope this helps. -- Mickaël Rémond http://www.erlang-projects.org/ |
From: Anastasia G. <er...@er...> - 2004-06-23 14:18:21
|
On Wed, Jun 23, 2004 at 03:47:59PM +0200, Micka?l R?mond wrote: > Hum. Why do you think they should not appears ? Mnesia database schema are > persistent. Their are kept in the Mnesia dir from one execution to another. > If you want table to disappear you have to "drop" them. When mnesia dir is empty and you run yaws with my jinit.erl, in mnesia dir appears only one file FALLBACK.BUP. Explain me, please, where are table files? So, le't exit from yaws and run it again and look into mnesia dir. Waw! Table files appears! Is it a bug or a feature? > If you want to always start whith an empty environment for Mnesia you can > remove all database files from the Mnesia dir (DCD, DCL, DAT and LOG > files). Use a separate dir for Mnesia file to avoid deleting file you > might need and do a backup before... I wan to create db automatically, if it does not exists yet. ermine |
From: <mic...@er...> - 2004-06-23 14:49:59
|
On Wed, 23 Jun 2004 18:18:44 +0400, Anastasia Gornostaeva <er...@er...> wrote: > On Wed, Jun 23, 2004 at 03:47:59PM +0200, Micka?l R?mond wrote: > >> Hum. Why do you think they should not appears ? Mnesia database schema >> are >> persistent. Their are kept in the Mnesia dir from one execution to >> another. >> If you want table to disappear you have to "drop" them. > > When mnesia dir is empty and you run yaws with my jinit.erl, in mnesia > dir > appears only one file FALLBACK.BUP. Explain me, please, where are table > files? Table file does not exist yet as there is no data in it. However the database schema already exist. Please look at: http://www.erlang.org/doc/r7b/lib/mnesia-3.9.2/doc/html/Mnesia_chap7.html to see what the FALLBACK.BUP file is: "The response shows that the file FALLBACK.BUP has been created. This is called a backup file, and it contains an initial schema. If we had specified more than one node in the mnesia:create_schema/1 function, identical backup files would have been created on all nodes." > So, le't exit from yaws and run it again and look into mnesia dir. Waw! > Table files appears! Is it a bug or a feature? It is how Mnesia works and definitly not a bug. > I wan to create db automatically, if it does not exists yet. Why not use mnesia:table_info to check if your needed table are present ? -- Mickaël Rémond http://www.erlang-projects.org/ |
From: Carsten S. <ca...@co...> - 2004-06-23 13:26:45
|
On Wed, Jun 23, 2004 at 04:34:07PM +0400, Anastasia Gornostaeva wrote: > Hello. >=20 > Thanks for helping. >=20 > I have another problem with yaws: I whote a little programm that should to > setup a Mnesia database (below).=20 > That programm excellent workss as erl -name asd -mnesia dir '"/path"' -s = jinit > I decided to run it as runmod of yaws. But this way does not work at all,= =20 > it breaks at mnesia:system_info() -- it says > {error,{'yaws@ermine.home',{already_exists,'yaws@ermine.home'}}} > Where it already exists, if mnesia dir is empty at whole? In memory. The way I would do it: Start erlang (not yaws) with `-mnesia scheme_location disc -mnesia dir /path' and create the schema by hand. Then stop erlang and start yaws with `yaws -M /path'. At least, that is what I remember. I struggled a bit, but then got it working. HTH Carsten --=20 Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers,=20 fingerprint on my home page. |