我正在将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">>}]}}
答案 0 :(得分:1)
道歉,
问题显然是表中不存在列id。但是我问了这个问题,因为在其他测试中我将该列命名为模型的下划线版本,即如果模型是客户,那么该列将是customer_id并且它工作正常。
出于某种原因,仅在postgres上使用名称“id”似乎现在可以正常工作。
CREATE TABLE recordings (
id uuid PRIMARY KEY,
... );