No cigar.  Setting this with:

```
set_primary_key :id
```

yields the same error.

Neil

On Fri, Mar 6, 2015 at 7:50 PM, Jeremy Evans <[email protected]> wrote:

> On Friday, March 6, 2015 at 9:35:20 AM UTC-8, Neil Middleton wrote:
>>
>> Hey,
>>
>> We're trying to use sequel against a view in Postgres which goes cross
>> schema (select * from schema.table basically).  There's a relationship in
>> one model 'tickets' (based on the view) which links to another table via a
>> `many_to_many`:
>>
>> ```
>> many_to_many :tags, left_key: :ticket_id, right_key: :tag_id
>> ```
>>
>> (tickets is a view on a table in another schema, tags is just public.tags)
>>
>> However, on application boot, this causes an error:
>>
>> ```
>> 17:25:23 web.1    | [32073] ! Unable to load application: Sequel::Error:
>> mismatched number of left keys: [:ticket_id] vs []
>> 17:25:24 web.1    | /Users/neil/.rbenv/versions/2.
>> 2.0/lib/ruby/gems/2.2.0/gems/sequel-4.19.0/lib/sequel/model/associations.rb:1806:in
>> `def_many_to_many': mismatched number of left keys: [:ticket_id] vs []
>> (Sequel::Error)
>> ```
>>
>> Everything is fine and working in postgres-land and behaving as it
>> should, but Sequel is blocking us by causing this error.  I assume this is
>> something to do with the schema change in the view?
>>
>
> It's probably because Sequel can't determine the primary key for the model
> if you use a view instead of a table, since views do not have primary
> keys.  You can probably use set_primary_key for the appropriate model that
> is backed by the view to work around it.
>
> Thanks,
> Jeremy
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sequel-talk" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sequel-talk/WamdFeH0wGQ/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sequel-talk.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
 - N

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to