Ruby on Rails Monday, July 31, 2017

I found another way around this so you could still use the ruby version of schema dumper.  You must create an initializer to add your custom types to the active record psotgress adapter.  I wrote up the answer here:

https://stackoverflow.com/a/45430348/1019660

(This post was the first place I saw talking about it so wanted to make sure anyone else stumbling across it found a good answer)

On Wednesday, November 11, 2015 at 10:59:55 AM UTC+1, alexande...@gmail.com wrote:
Hello, So I'm adding a Postgres Enum Type with a migration but I'm having a problem with db/schema.rb output breaking when I do this:

def up
  execute
<<-SQL.squish
     CREATE TYPE three_letters_type AS ENUM
(
       
'A',
       
'B',
       
'C',
       
);
  SQL
  execute
<<-SQL.squish
     ALTER TABLE test
     ADD COLUMN three_letters three_letters_type
;
  SQL
 
end


I end up with the following comments in db/schema.rb -


# Could not dump table "test" because of following StandardError
#   Unknown type 'three_letters_type' for column 'three_letters'

It's quite important for me to be able to use Enums because unique-indexes across several columns are expensive and it's highly preferable not to use t.string (varchar) here. Would be great to hear if there is a work-around for this, thanks.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/ea21716f-0142-47f8-b1fe-b330e87c8370%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment