数据库特定迁移代码

我正在创建一个需要在多个数据库下运行的应用程序。 我目前在迁移中有一些代码,我只想在特定的数据库(postgresql和mysql)下运行。 有任何设置方法吗? 谢谢。

您的迁移可以访问连接中的数据库连接,并且连接具有adapter_name方法,因此您可以询问它是什么类型的连接:

 def self.up case connection.adapter_name when 'PostgreSQL' # Do PostgreSQL stuff when 'MySQL' # Do MySQL stuff else # Blow up and catch on fire. Or silently ignore it depending on your needs. end end 

我不确定我的MySQL适配器名称是否正确,但技术是否合理,您可以自己轻松检查MySQL适配器名称。