`
langzhe
  • 浏览: 288401 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Chicagoboss 数据库之郁闷

 
阅读更多

从表面上看CB功能很强大。也许。。。

版本0.7.2

以前 太乐观,以为 出了riak其它支持的数据库都能随意切换,说想的美一点都不错

我们开始开发用的是mock,测试方便,不需要创建表。

开发完了,切换到mysql上问题来了阿阿阿阿阿。

1、如果每个table名必须是复数形式 如account module必须用accounts表名(其它的测试)。

2、Id 需要设置为自动增长我采用biginit(11),如果采用其它类型 只能插入NULL

3、字段名称也需要注意不能随便用"_id"结尾否则会认为"_id"前面是表名。如send_user_id 会认为send_user是表,其实可能不是此时会出错。

4、继续说明'test_id' 此字段必须与test表的id类型一致。s

 

查询错误与区别

 

(elves@127.0.0.1)54> 

(elves@127.0.0.1)54> boss_db:find("account-1").

* 5: syntax error before: boss_db

(elves@127.0.0.1)54> boss_db:find("account-1").

{account,"account-1",<<"jason">>,

         <<"22langxianzhe@163.com">>,undefined,undefined,<<"1234">>,

         <<"2012-03-15 01:51:34">>,<<"jason">>,<<"13105322554">>,

         undefined,undefined}

(elves@127.0.0.1)55> boss_db:find(account,[{id,"1"}]).

[{account,"account-1",<<"jason">>,

          <<"22langxianzhe@163.com">>,undefined,undefined,<<"1234">>,

          <<"2012-03-15 01:51:34">>,<<"jason">>,<<"13105322554">>,

          undefined,undefined}]

(elves@127.0.0.1)56> boss_db:find(account,[{id,"account-1"}]).

[]

(elves@127.0.0.1)57> boss_db:find("1").                       

** exception exit: {{{badmatch,["1"]},

                     [{boss_db_adapter_mysql,infer_type_from_id,1},

                      {boss_db_adapter_mysql,find,2},

                      {boss_db_controller,handle_call,3},

                      {gen_server,handle_msg,5},

                      {proc_lib,init_p_do_apply,3}]},

                    {gen_server,call,[<0.12572.0>,{find,"1"},30000]}}

     in function  gen_server:call/3

     in call from boss_pool:call/3

(elves@127.0.0.1)58> 

=ERROR REPORT==== 15-Mar-2012::17:11:48 ===

** Generic server <0.12572.0> terminating 

** Last message in was {find,"1"}

** When Server state == {state,boss_db_adapter_mysql,<0.12573.0>,[],

                               {dict,0,16,16,8,80,48,

                                     {[],[],[],[],[],[],[],[],[],[],[],[],[],

                                      [],[],[]},

                                     {{[],[],[],[],[],[],[],[],[],[],[],[],[],

                                       [],[],[]}}},

                               false,60,db,0}

** Reason for termination == 

** {{badmatch,["1"]},

    [{boss_db_adapter_mysql,infer_type_from_id,1},

     {boss_db_adapter_mysql,find,2},

     {boss_db_controller,handle_call,3},

     {gen_server,handle_msg,5},

     {proc_lib,init_p_do_apply,3}]}

-------------------------------------
以下错误是 由 modle变量 与数据库之间 一致造成的
=INFO REPORT==== 15-Mar-2012::18:37:22 ===
In elves_authorization:user_authorization on 25 line Base64="amFzb246MTIzNA==" ,
=ERROR REPORT==== 15-Mar-2012::18:37:22 ===
** Generic server <0.77.0> terminating 
** Last message in was {find,message,[],4,0,id,str_ascending}
** When Server state == {state,boss_db_adapter_mysql,<0.78.0>,[],
                               {dict,0,16,16,8,80,48,
                                     {[],[],[],[],[],[],[],[],[],[],[],[],[],
                                      [],[],[]},
                                     {{[],[],[],[],[],[],[],[],[],[],[],[],[],
                                       [],[],[]}}},
                               false,60,db,0}
** Reason for termination == 
** {badarith,[{lists,nth,2},
              {boss_db_adapter_mysql,'-activate_record/3-fun-0-',4},
              {lists,map,2},
              {lists,map,2},
              {boss_db_adapter_mysql,activate_record,3},
              {lists,map,2},
              {boss_db_controller,handle_call,3},
              {gen_server,handle_msg,5}]}

=CRASH REPORT==== 15-Mar-2012::18:37:22 ===
  crasher:
    initial call: boss_db_controller:init/1
    pid: <0.77.0>
    registered_name: []
    exception exit: {badarith,
                        [{lists,nth,2},
                         {boss_db_adapter_mysql,'-activate_record/3-fun-0-',4},
                         {lists,map,2},
                         {lists,map,2},
                         {boss_db_adapter_mysql,activate_record,3},
                         {lists,map,2},
                         {boss_db_controller,handle_call,3},
                         {gen_server,handle_msg,5}]}
      in function  gen_server:terminate/6
    ancestors: [<0.64.0>,boss_db_pool,boss_db_sup,boss_web,boss_sup,
                  <0.58.0>]
    messages: []
    links: [<0.64.0>,<0.63.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 6765
    stack_size: 24
    reductions: 14142
  neighbours:

分享到:
评论

相关推荐

    ChicagoBoss-Riak2:用于 ChicagoBoss 的 Riak 2.0 适配器和索引器

    BossDB:用于 Erlang 的分片、缓存、池化、事件 ORM支持的数据库新的DynamoDB(实验性) 尼西亚MongoDB MySQL PostgreSQL 里亚克东京暴君完整的 API 参考查询: : 记录: : 老板新闻: ://chicagoboss.org/api-news....

    ChicagoBoss, Erlang web MVC,现在有Comet.zip

    ChicagoBoss, Erlang web MVC,现在有Comet 芝加哥老板:开始小,梦想大 注意这是一个支持 Erlang 18的主分支。 对于旧的Erlang版本使用遗留分支。芝加哥老板是一个由 Rails 启发并用Erlang编写的服务器框架。 它...

    docker-chicagoboss:Dockerized Chicago Boss Web框架

    docker-chicagoboss Dockerized Chicago Boss Web框架 它是什么? 包含Docker容器映像 我可以用来做什么? 使用它通过Dockerized Chicago Boss构建和部署Web应用程序。 使用它可以使用Chicago Boss开发Erlang Web...

    erl-foosball-tracker:使用 ChicagoBoss、AngularJS 和 CoffeeScript 制作的桌上足球跟踪服务器

    桌上足球服务器旨在与手机浏览器一起使用的足球统计跟踪服务器,使用 ChicagoBoss 和 AngularJS 用 Erlang 和 CoffeeScript 编写不要运行这个面向公众的。 它具有基本的玩具认证。 ##要求 ##Building 在您克隆的...

    boss_db:BossDB:用于Erlang的分片,缓存,池化事件ORM

    支持的数据库新的DynamoDB(实验性) 失忆症MongoDB MySQL PostgreSQL里亚克东京暴君完整的API参考查询: : 记录: : BossNews: ://chicagoboss.org/doc/api-news.html 写一个适配器: : 用法boss_db : start ( ...

    一个用Erlang公告板系统在一个局域网内构造 BBS 集群,

    ETS适用于内存中快速存取,而Mnesia则是一个分布式数据库,支持事务和持久化,适合存储BBS的帖子、用户信息等核心数据。 4. **热更新与容错**:Erlang VM支持代码热更新,允许在不中断服务的情况下升级程序。同时,...

    mochiweb实例

    此外,Mochiweb常与其他Erlang框架如ChicagoBoss或Cowboy结合使用,构建功能更强大的Web应用。 标签“mochiweb”提示我们这个实例专注于Mochiweb的使用,因此,深入学习Mochiweb的API、HTTP协议的细节以及Erlang的...

Global site tag (gtag.js) - Google Analytics