rails adapter * tables * view
rails 4276b214f8a13a38ac7dc4911e90d295a8e40d5a
books is table, ebooks is view
class MigrationA < ActiveRecord::Migration
def change
create_table :books, force: true do |t|
t.integer :author_id
t.string :format
t.column :name, :string
t.column :status, :integer, default: 0
t.column :read_status, :integer, default: 0
t.column :nullable_status, :integer
t.column :language, :integer, default: 0
t.column :author_visibility, :integer, default: 0
t.column :illustrator_visibility, :integer, default: 0
t.column :font_size, :integer, default: 0
end
end
end
class MigrationB < ActiveRecord::Migration
def create_view(name, query)
execute "CREATE VIEW #{name} AS #{query}"
end
def change
create_view "ebooks", <<-SQL
SELECT id, name, status FROM books WHERE format = 'ebook'
SQL
end
end
[2] pry(main)> ActiveRecord::Base.connection.tables
=> ["schema_migrations", "books"]
[3] pry(main)> ActiveRecord::Base.connection.table_exists? :ebooks
=> true
[5] pry(main)> ActiveRecord::Base.connection.tables
=> ["books", "ebooks", "schema_migrations"]
[6] pry(main)> ActiveRecord::Base.connection.table_exists? :ebooks
=> true
[2] pry(main)> ActiveRecord::Base.connection.tables
=> ["schema_migrations", "books", "ebooks"]
[3] pry(main)> ActiveRecord::Base.connection.table_exists? :ebooks
=> true