Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan banyak database untuk satu aplikasi Rails 3.1 di Heroku?

Bekerja dari tanggapan sebelumnya, tetapi menggabungkan beberapa keuntungan Rails 3 dengan konfigurasi dan menyederhanakan penguraian...

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

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

Kami mungkin ingin mengganti ini dalam pengembangan / pengujian

# config/environments/development.rb

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

    config.secondary_database_url = 'SOME_CONNECTION_STRING'
  end
end    

Sekarang untuk menyiapkan kelas, model kita akan mewarisi dari...

# 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. Apa lapisan abstraksi basis data yang layak untuk Python

  2. default kolom dengan string kosong

  3. Cara memesan 1,2,3 bukan 1, 10, 11, 12 di mySQL

  4. Bagaimana cara melihat semua kunci asing ke tabel atau kolom?

  5. Mengambil baris RAND() tanpa ORDER BY RAND() hanya dalam satu kueri