在Rails上的模式中设置全局变量

时间:2014-02-11 07:09:24

标签: mysql ruby-on-rails ruby-on-rails-3

使用Rails 3.2和MySQL。我想在我的Rails应用程序中为MySQL设置一些全局变量,而不是第一次手动完成。我可以将其放在schema.rb

# schema.rb
ActiveRecord::Base.connection.execute("SET GLOBAL binlog_format = 'MIXED';")

ActiveRecord::Schema.define(:version => 20140202070057) do

  create_table "currencies", :force => true do |t|
    t.string   "name"
    ...
  end

  ...
end

因此,当我第一次运行db:setup时,它会设置全局变量。

1 个答案:

答案 0 :(得分:1)

db/schema.rb文件是自动生成文件。而是添加迁移脚本或rake任务。

示例:

namespace :db do
  task :set_binlog_format => :environment do
    ActiveRecord::Base.connection.execute("SET GLOBAL binlog_format = 'MIXED';")
  end
  task :setup => :set_binlog_format
end