On Thursday, May 5, 2016 at 9:01:28 AM UTC-7, Andrew Burleson wrote:
>
> I've been trying to figure out the syntax for a lowercase unique 
> constraint on a column and so far have struck out.
>
> I found this SO post:
>
>
> http://stackoverflow.com/questions/11442733/case-insensitive-uniqueness-validation-in-a-ruby-sequel-migration
>
> But the example there is for an `alter_table` block and I'm doing a 
> `create_table`. According to the docs `unique` in create is the same thing 
> as `add_unique_constraint` in alter, but if I used:
>
>       unique Sequel.function(:lower, :username)
>       unique Sequel.function(:lower, :email)
>
> I get a syntax error:
>
> PG::SyntaxError: ERROR:  syntax error at or near "("
>
> LINE 1: ...min" boolean DEFAULT false NOT NULL, UNIQUE (lower("username...
>
>
> In googling a bit more I see this is to be expected for postgres (
> http://shuber.io/case-insensitive-unique-constraints-in-postgres/)
>
>
> That article suggests making a unique *index* instead of constraint...
>
>
> What's the recommended approach to doing this with Sequel?
>

Just use the :unique option to index:

  index Sequel.function(:lower, :username), :unique=>true

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 https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to