Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам множество бази данни за едно приложение на rails 3.1 в Heroku?

Отработване на предишните отговори, но включване на някои предимства на Rails 3 с конфигурацията и опростяване на синтактичния анализ...

# config/application.rb
module MyApp
  class Application < Rails::Application
    ... other configs

    config.secondary_database_url = ENV['SECONDARY_DB_URL']
  end
end

Може да искаме да заменим това при разработка/тест

# config/environments/development.rb

module MyApp
  class Application < Rails::Application
    ... other configs

    config.secondary_database_url = 'SOME_CONNECTION_STRING'
  end
end    

Сега, за да настроим класа, ще наследим нашите модели от...

# lib/active_record/secondary.rb 
module ActiveRecord
  class Secondary < ActiveRecord::Base
    self.abstract_class = true

    # prior to AR 3.2.1
    url = URI.parse( MyApp::Application.config.secondary_database_url )
    establish_connection(
      :adapter  => 'mysql',
      :host     => url.host,
      :username => url.userinfo.split(':')[0],
      :password => url.userinfo.split(':')[1],
      :database => url.path[1..-1],
      :port     => url.port || 3306
    )

    # as of AR 3.2.1
    establish_connection(MyApp::Application.config.secondary_database_url)

  end

  class SecondaryMigration < ActiveRecord::Migration
    def connection
      ActiveRecord::Secondary.connection 
    end
  end

end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите името на ограничение в MySQL

  2. Не е ли нулевата стойност на PHP равна на нулевата стойност на MySQL?

  3. Мигрирайте база данни от Postgres към MySQL

  4. Има ли ограничение за дължината на заявката в mysql?

  5. Как да комбинирам резултатите от две заявки с поръчка?