SQL Views rake task implementing `rake db:views`
namespace :db do | |
desc "Update and create SQL views" | |
task :views => :environment do | |
Dir["#{Rails.root}/db/sql_views/*.sql"].each do |file_name| | |
STDERR.puts "Applying the SQL view at #{file_name}" | |
source_file = File.new(file_name, 'r') | |
if source_file and (sql_content = source_file.read) | |
ActiveRecord::Base.transaction do | |
# Each statement ends with a semicolon followed by a newline. | |
sql_lines = sql_content.split(/;[ \t]*$/) | |
if sql_lines.respond_to?(:each) | |
sql_lines.each do |line| | |
ActiveRecord::Base.connection.execute "#{line};" | |
end | |
end | |
end # transaction | |
end | |
end # Dir.each | |
end # task | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment