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 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