hi, as far as i understand the pgsql driver:
your model should be like this: -module(ngpw_user, [Id::*id()*, Email::string(), Verified::boolean(), Tainted::boolean(), AuthenticationKey::binary(), Salt::binary(), LastLogin::date()]). or -module(ngpw_user, [Id::*uuid()*, Email::string(), Verified::boolean(), Tainted::boolean(), AuthenticationKey::binary(), Salt::binary(), LastLogin::date()]). but not -module(ngpw_user, [Id::*integer()*, Email::string(), Verified::boolean(), Tainted::boolean(), AuthenticationKey::binary(), Salt::binary(), LastLogin::date()]). chan. 2015-12-15 5:15 GMT+08:00 dxtrish <[email protected]>: > Hi! > I have this model: > -module(ngpw_user, [Id::integer(), > Email::string(), > Verified::boolean(), > Tainted::boolean(), > AuthenticationKey::binary(), > Salt::binary(), > LastLogin::date()]). > -columns([ > {id, "id"}, % Bigserial > {email, "email"}, % citext > {verified, "verified"}, % bool > {tainted, "tainted"}, % bool > {authentication_key, "authentication_key"}, % bytea > {salt, "salt"}, % bytea > {last_login, "last_login"} % date > ]). > -table("ngpw_users"). > -compile(export_all). > > I have created a table with the following code: > %% Migration: create_users_table > > {create_users_table, > fun(up) -> boss_db:execute(<<"CREATE TABLE ngpw_users (id bigserial > primary key,email text not null,verified boolean default false,tainted > boolean default false,authentication_key bytea,salt bytea,last_login > date);">>), > boss_db:execute(<<"CREATE UNIQUE INDEX unique_email_on_ngpw_users ON > ngpw_users (email)">>); > (down) -> > boss_db:execute(<<"DROP INDEX unique_email_on_ngpw_users">>), > boss_db:execute(<<"DROP TABLE ngpw_users">>) > end}. > > > I create the record with: > {Date, _} = calendar:universal_time(), > ngpw_user:new(id, > Email, > false, % Verified > false, % Tainted > AuthKey, > Salt, > Date). > > (Is there a better way to get the date? Is it possible to insert a null > value?) > > But when I try to save the record I get: > 05:13:27.377 [notice] Saving Record {ngpw_user,id,"[email protected] > ",false,false,<<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230,182,218,216,71,44,177,167,154,174,179,211,46,181,14,162,81,89,161,53,49,102,8,190,192,52,221,40,238,194,119,232,46,185,153,61,57,111,194,170,119,83,230,108,105,183,99,101,41>>,<<44,32,40,25,59,192,238,241,221,234,70,231,91,196,86,100>>,{2015,12,14}} > 05:13:27.378 [error] gen_server <0.298.0> terminated with reason: no > function clause matching > boss_db_adapter_pgsql:maybe_populate_id_value({ngpw_user,id,"[email protected]",false,false,<<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230,...>>,...}, > integer) line 222 > 05:13:27.378 [error] CRASH REPORT Process <0.298.0> with 0 neighbours > exited with reason: no function clause matching > boss_db_adapter_pgsql:maybe_populate_id_value({ngpw_user,id,"[email protected]",false,false,<<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230,...>>,...}, > integer) line 222 in gen_server:terminate/7 line 826 > 05:13:27.378 [error] Supervisor {<0.98.0>,poolboy_sup} had child undefined > started with {boss_db_controller,start_link,undefined} at <0.298.0> exit > with reason no function clause matching > boss_db_adapter_pgsql:maybe_populate_id_value({ngpw_user,id,"[email protected]",false,false,<<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230,...>>,...}, > integer) line 222 in context child_terminated > 05:13:27.379 [error] Error in controller exit:{{function_clause, > [{boss_db_adapter_pgsql,maybe_populate_id_value, > [{ngpw_user,id,"[email protected]",false,false, > > <<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230, > > 182,218,216,71,44,177,167,154,174,179,211,46,181,14,162, > > 81,89,161,53,49,102,8,190,192,52,221,40,238,194,119,232, > > 46,185,153,61,57,111,194,170,119,83,230,108,105,183,99, > 101,41>>, > > <<44,32,40,25,59,192,238,241,221,234,70,231,91,196,86,100>>, > {2015,12,14}}, > integer], > [{file,"src/db_adapters/boss_db_adapter_pgsql.erl"}, > {line,222}]}, > {boss_db_adapter_pgsql,save_record,2, > [{file,"src/db_adapters/boss_db_adapter_pgsql.erl"}, > {line,142}]}, > {boss_db_controller,handle_call,3, > [{file,"src/boss_db_controller.erl"},{line,162}]}, > > {gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,629}]}, > {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,661}]}, > > {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}, > {gen_server,call, > [<0.298.0>, > {save_record, > {ngpw_user,id,"[email protected]",false,false, > > <<60,205,252,70,14,123,202,207,114,56,94,83,216,27,28,230, > > 182,218,216,71,44,177,167,154,174,179,211,46,181,14,162, > > 81,89,161,53,49,102,8,190,192,52,221,40,238,194,119,232, > > 46,185,153,61,57,111,194,170,119,83,230,108,105,183,99, > 101,41>>, > > <<44,32,40,25,59,192,238,241,221,234,70,231,91,196,86,100>>, > {2015,12,14}}}, > 30000]}} Stacktrace: > gen_server.erl:212 [gen_server:call/3] > src/boss_pool.erl:12 [boss_pool:call/3] > src/boss_db.erl:421 [boss_db:save_record/2] > /vagrant/ngpwstore/src/lib/ngpw_user_lib.erl:23 > [ngpw_user_lib:register_user/2] > /vagrant/ngpwstore/src/controller/ngpwstore_main_controller.erl:29 > [ngpwstore_main_controller:signup/4] > src/boss/boss_web_controller.erl:305 > [boss_web_controller:call_controller_action/3] > src/boss/boss_web_controller.erl:297 [boss_web_controller:apply_action/4] > src/boss/boss_web_controller.erl:276 > [boss_web_controller:execute_action_inner/9] > 05:13:27.380 [error] "Error in controller, see console.log for details\n" > 05:13:27.381 [error] POST /signup [ngpwstore] 500 1252ms > 05:13:27.541 [info] GET /404 [ngpwstore] 200 68ms > > What am I doing wrong here? > > By the way, I am using the latest version of Chicagoboss from the master > branch on github, > > -- > You received this message because you are subscribed to the Google Groups > "ChicagoBoss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > Visit this group at https://groups.google.com/group/chicagoboss. > To view this discussion on the web visit > https://groups.google.com/d/msgid/chicagoboss/c817de3c-7599-484b-93d3-3ab6029f30ae%40googlegroups.com > <https://groups.google.com/d/msgid/chicagoboss/c817de3c-7599-484b-93d3-3ab6029f30ae%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "ChicagoBoss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/chicagoboss. To view this discussion on the web visit https://groups.google.com/d/msgid/chicagoboss/CAB-OfhkcjtdhSb_wrGNT2DBv%3DxEcMEYR5B54V-peA1xs5Q9GbA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
