数据库感知Rails迁移

时间:2011-11-04 13:39:58

标签: activerecord ruby-on-rails-3.1 rails-migrations

我正在开发一个rails应用程序,我在开发环境中使用Sqlite,在生产中使用PostgreSQL。有没有办法编写“数据库感知”迁移?即一个execute在Sqlite上的某个SQL语句和一个关于Postgres的差异语句?

1 个答案:

答案 0 :(得分:0)

您应该能够写出类似的内容:

class MyMigration < ActiveRecord::Migration
  def up
    if ActiveRecord::Base.connection.kind_of? ActiveRecord::ConnectionAdapters::SQLite3Adapter
      execute 'SQL Statement...'
    else
      execute 'Different SQL Statement...'
    end
  end

  def down
    ...
  end
end

这不是我必须实现的,所以我不知道任何陷阱。