2014-10-20 71 views

回答

0

只需使用execute

class CreateMyTables < ActiveRecord::Migration 
    def up 
    execute <<-SQL 
     CREATE SQL-STATEMENTS-GO-HERE 
    SQL 
    end 

    def down 
    execute <<-SQL 
     DROP SQL-STATEMENTS-GO-HERE 
    SQL 
    end 
end 
+0

當產生'DB/schema.rb'將從這種方式創建表的模式被正確包括在內? – 2014-10-20 21:12:07

+0

是的,我相信。它是使用數據庫轉儲生成的。但它可能不是一個完美的代表。請參閱本指南:http://guides.rubyonrails.org/migrations.html#schema-dumping-and-you – Daiku 2014-10-20 21:19:54

+0

@Jordan:不一定。如果你的模式包含ActiveRecord不理解的東西(比如真正的外鍵,CHECK約束或者其他不是嬰兒談DDL的東西),那麼'schema.rb'就會把它拋出去。如果你切換到'structure.sql',那麼你會得到一個原始數據庫轉儲,它將包含一切。 – 2014-10-20 21:29:23