18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/view_something.rb', line 18
def self.ensure_view_exists(digest, sql)
unless has_known_view?(digest)
connection_klass = ActiveRecord::Base.connection.class
adapter = connection_klass.name.split('::')[-1]
if ['SQLite3Adapter'].include?(adapter)
ActiveRecord::Base.connection.execute "DROP VIEW IF EXISTS '#{digest}'"
ActiveRecord::Base.connection.execute "CREATE VIEW '#{digest}' AS #{sql}"
elsif ['MysqlAdapter', 'Mysql2Adapter'].include?(adapter)
ActiveRecord::Base.connection.execute "CREATE OR REPLACE VIEW #{digest} AS #{sql}"
else
raise "Database type #{connection_klass.name} not supported by ViewSomething"
end
end
end
|