On Wednesday, February 22, 2017 at 11:18:07 AM UTC-8, Aaron Heesakkers 
wrote:
>
> Hi,
>
> My Sequel migrations stopped working. I wrote them some time last year, 
> and included JSON columns. I'm a bit confused as to what has changed. I'm 
> unable to find anything related in the changelogs.
>
> This is one of those migrations:
>
>       create_table(:organisation) do
>         primary_key     :id
>         DateTime        :created_at, default: 'NOW()'
>         DateTime        :updated_at
>         String          :name, :null=>false
>         String          :description
>         JSON            :domains
>       end
>
>
> And if I recall correctly, all I needed for those columns to work in the 
> migrations was:
> Sequel.extensions :core_extensions
>
> Now, after coming back to the project I end up with this error:
> /Users/aaronh/.rvm/gems/ruby-2.3.1/gems/json-1.8.6/lib/json/common.rb:223:
> in `generate': only generation of JSON objects or arrays allowed 
> (JSON::GeneratorError)
>
> apparently because the const JSON is not (no longer?) found within Sequel 
> namespace. It now tries to use the top level `JSON` const/gem, which breaks 
> of course.
>
> All I have to do to resolve this, is replace `JSON` with `Json` or `Jsonb` 
> or `Jsonh`. So it's all good, but I was wondering if this group could shine 
> some light on what has changed. (Could be something with my project-setup 
> or RVM, I'm not sure, I'm looking for hints).
>
> Cheers, and thanks for a great lib.
>

This is because the json library defines the JSON method on all objects. 
 You should probably use json instead of JSON, or "column :domains, :json".

The breakage is probably not due to Sequel, but it could be due to the json 
library being required when you are running migrations now, when it wasn't 
required previously.

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