Cross post from Stack Overflow (  
http://stackoverflow.com/questions/11894180/how-does-one-correctly-add-custom-sql-dml-in-migrations
  )

I had a situation today where I wanted to add a partial postgres index to a 
table in a migration. Naturally this kind of stuff is not possible yet in 
rails using `add_index` (it is [coming some time][1]) 

So, I am forced to use `execute` statements in my migration. 

Now, `schema.rb` has this comment at the top: 

    # Note that this schema.rb definition is the authoritative source for 
your
    # database schema. If you need to create the application database on 
another
    # system, you should be using db:schema:load, not running all the 
migrations
    # from scratch. The latter is a flawed and unsustainable approach (the 
more migrations
    # you'll amass, the slower it'll run and the greater likelihood for 
issues).
    #

Unfortunately this `execute` statement is not tracked in `schema.rb` the 
effect of this is making `schema.rb` pretty much useless if I have any 
custom DML. 

Is there any way I can force an `execute` statement containing DML to find 
itself into `schema.rb` ? 
 


  [1]: 
https://github.com/rails/rails/commit/d70e0236df61d69c9299fe63df94da35c87ee2d8

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/9C7E6YUU094J.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to