John, Perhaps make a few directories like db/procedures, db/views, etc and just create a rake task in the db namespace that overrides or extends those in ActiveRecord's databases.rake? I've had to do this often with legacy databases in many forms. This github project talks about it for those coming from legacy DBs in SQL Server.
https://github.com/rails-sqlserver/AdventureWorks.Ruby#test-database-tasks In some cases, I use a little rake extension called #alias_task when needing to override a particular task. http://metaskills.net/2010/05/26/the-alias_method_chain-of-rake-override-rake-task/ In your case, since you want to stick with schema.rb, you could perhaps #alias_task on the db:schema:load task, then invoke it, then load up your procedures, views etc from the nested db directories? I would be open to hearing how others do this too, but I have always found working with special schemas and DDL's quite easy with ActiveRecord when you know the pressure points. - Ken On Jul 11, 2012, at 6:42 PM, Jon Leighton wrote: > One thing that I have recently found myself desiring is the ability to > augment schema.rb with snippets of SQL. > > For example, I use Postgres, and need to declare some case-insensitive > indexes. This is not currently possible using Rails directly. > > I don't want to switch to use the SQL schema dump format, because that's > highly dependent on the database version. E.g. I am using Postgres 9, and > another developer is using 8.4. We will probably end up overwriting each > other's schema.sql files if we went this route. > > But it would be nice to have, say, a db/schema_extra.sql where we could > manually place additional stuff like our case-insensitive indexes or whatever. > > Or views... > > -- > http://jonathanleighton.com/ > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-core?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
