保存记录时boss_db问题

时间:2012-12-21 15:09:12

标签: erlang chicagoboss

我正在将boss_db用于一个小项目,并且遇到了一个我无法从文档中解读的问题。

这是我的Postgres数据库表:

CREATE TABLE recordings (
       recording_id       uuid PRIMARY KEY,      
       created            timestamp NOT NULL, 
       cid_name               text DEFAULT '',   
       cid_number         text NOT NULL, 
       destination_number     text NOT NULL,
       file_path              text NOT NULL,
       message_len            integer, 
       archived               boolean DEFAULT false 
  );

这是我的模型文件:

-module(recording, [Id::uuid(), 
                    Created::datetime(),
                    CidName::string(),
                    CidNumber::string(),
                    DestinationNumber::string(),
                    FilePath::string(),
                    MessageLen::integer(),
                    Archived::boolean()
                   ]).

以下是控制台上发生的事情:

1> myproto:start().
{ok,<0.34.0>}
2> {ok, recording} = boss_record_compiler:compile("recording.erl").
{ok,recording}
3>  Recording = recording:new(id, {{2012, 12, 20}, {18, 19, 20}}, "", "1002", "1000", "/usr/local/freeswitch/encodings/2012-12-20-13-17-36_1000_1002.ogg", 260, false ).
{recording,id,
           {{2012,12,20},{18,19,20}},
           [],"1002","1000",
           "/usr/local/freeswitch/encodings/2012-12-20-13-17-36_1000_1002.ogg",
           260,false}
4> Recording:save().
{error,{error,error,<<"42703">>,
              <<"column \"id\" of relation \"recordings\" does not exist">>,
              [{position,<<"110">>}]}}

1 个答案:

答案 0 :(得分:1)

道歉,

问题显然是表中不存在列id。但是我问了这个问题,因为在其他测试中我将该列命名为模型的下划线版本,即如果模型是客户,那么该列将是customer_id并且它工作正常。

出于某种原因,仅在postgres上使用名称“id”似乎现在可以正常工作。

CREATE TABLE recordings (
       id                     uuid PRIMARY KEY,      

...       );