Hãy thử
rake db:create:all
Và có, có thể có nhiều kết nối db trong một ứng dụng Rails.
Đây là những gì tôi đã làm một lần, tôi đã tạo hai lớp kế thừa từ ActiveRecord::Base
và thiết lập các kết nối bên trong các lớp đó.
Sau đó, tôi kế thừa tất cả các mô hình của mình trong một trong các lớp đó thay vì ActiveRecord
trực tiếp
Dưới đây là một ví dụ:
database.yml file
#app uses two database
#1 - test1
#2 - test2
test1:
adapter: mysql
encoding: utf8
database: test1
username: root
password: xxx
host: localhost
test2:
adapter: mysql
encoding: utf8
database: test2
username: root
password: xxx
host: localhost
Sau đó, tôi có hai mô hình cho cả cơ sở dữ liệu test1 và test2:
class Test1Base < ActiveRecord::Base
self.abstract_class = true
establish_connection("test1")
end
class Test2Base < ActiveRecord::Base
# No corresponding table in the DB.
self.abstract_class = true
establish_connection("test2")
end
Sau đó, tôi kế thừa các mô hình của mình theo cơ sở dữ liệu:
class School < Test1Base
#code
end
class Student < Test2Base
#code
end