Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng nhiều cơ sở dữ liệu cho một ứng dụng rails 3.1 trong Heroku?

Làm việc dựa trên các phản hồi trước đó, nhưng kết hợp một số lợi thế của Rails 3 với cấu hình và đơn giản hóa việc phân tích cú pháp ...

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

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

Chúng tôi có thể muốn ghi đè điều này trong phát triển / thử nghiệm

# config/environments/development.rb

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

    config.secondary_database_url = 'SOME_CONNECTION_STRING'
  end
end    

Bây giờ để thiết lập lớp, chúng tôi sẽ có các mô hình của chúng tôi kế thừa từ ...

# 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. Tạo hộp chọn danh mục con onChange

  2. Chèn vào bảng mysql và ghi đè lên bất kỳ dữ liệu hiện tại nào

  3. cách tính độ giống nhau giữa hai chuỗi trong MYSQL

  4. Dữ liệu nguồn mở ngày càng phát triển:Chọn MySQL, NoSQL hoặc cả hai

  5. CHÈN VÀO với SubQuery MySQL