1

私は小さなプロジェクトで Boss_db を使用していますが、ドキュメントから解読できない問題が発生しています。

これが私の Postgres DB テーブルです。

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">>}]}}
4

1 に答える 1

1

謝罪いたします、

問題は明らかに、列IDがテーブルに存在しないことです。ただし、他のテストでは、列にモデルのアンダースコアバージョンという名前を付けたため、質問をしました。つまり、モデルが顧客の場合、列はcustomer_idになり、正常に機能しました。

何らかの理由で、postgresの列に「id」という名前を使用するだけで機能するようになりました。

CREATE TABLE recordings (
       id                     uuid PRIMARY KEY,      

...);

于 2012-12-21T16:12:43.943 に答える