Я экспериментирую с ErlyDB в среде, отличной от erlyweb, и мне не везет.
У меня есть таблица «Thing» для тестирования и соответствующий модуль Thing:
-module(thing).
-export([table/0, fields/0]).
table() ->
thing.
fields() ->
[name, value].
Сам модуль работает - я могу нормально запросить базу данных, используя ( [Thing] = thing: find ({name, '=', "test"}) ).
Когда я пытаюсь сохранить новую запись, все оказывается не так хорошо.
Я постоянно вижу следующую ошибку:
mysql_conn:426: fetch <<"BEGIN">> (id <0.97.0>)
mysql_conn:426: fetch <<"INSERT INTO thing(value,name) VALUES ('vtha','blah')">> (id <0.97.0>)
mysql_conn:426: fetch <<"ROLLBACK">> (id <0.97.0>)
** exception exit: {{'EXIT',{badarg,[{erlang,hd,[[]]},
{erlydb_base,'-do_save/1-fun-0-',4},
{mysql_conn,do_transaction,2},
{mysql_conn,loop,1}]}},
{rollback_result,{updated,{mysql_result,[],[],0,[]}}}}
in function erlydb_base:do_save/1
in call from erlydb_base:hook/4
in call from test_thing:test/0
called as test_thing:test()
Таблица существует, учетные данные работают, и сам SQL в порядке, так как я могу выполнить команду непосредственно в базе данных.
Код, который я использую для сохранения:
erlydb:start(mysql, Database),
Thing = thing:new(<<"hello">>, <<"world">>),
thing:save(Thing),
Есть что-то, чего мне не хватает?
Есть ли какой-нибудь способ просмотра более полезных сообщений об ошибках из базы данных?