6

を使用rake db:migrateしてバニラ SQL をロードすると、どのような問題が発生するでしょうか?

私が取り組んでいるビジネス要件では、デフォルトの Rails の移行を使用できません。しかし、変更を追跡したり、データベースの DDL を簡単に変更したり、Rails の移行によって得られるその他のことを行う必要があります。

したがって、移行ファイルは次のようになります。

class AddDateToPost < ActiveRecord::Migration
  def self.up
    ActiveRecord::Base.connection.execute("ALTER TABLE `posts` ADD COLUMN date DATETIME NULL")
  end

  def self.down
    ActiveRecord::Base.connection.execute("ALTER TABLE `posts` DROP COLUMN date")
  end
end
4

2 に答える 2

17

up 関数と down 関数が相互にミラーリングされていることに自信を持っている限り、これはまったく問題なく問題はありません。読みやすくするために、次のことをお勧めします。

class AddDateToPost < ActiveRecord::Migration
  デフセルフアップ
    「ALTER TABLE `posts` ADD COLUMN date DATETIME NULL」を実行
  終わり

  def self.down
    「ALTER TABLE `posts` DROP COLUMN date」を実行
  終わり
終わり
于 2011-02-08T20:12:08.523 に答える