我正在尝试连接ROR应用程序中的多个数据库。我的database.yml看起来像这样 在您的database.yml文件中
发展:
adapter: mysql
username: root
password:
database: example_development
私人:
adapter: mysql
username: root
password:
database: example_private_development
可以使用establish_connection:private
进行连接我怀疑是如何使用rake db:create。我无法从谷歌获得解决方案。
请帮我清除它。
答案 0 :(得分:6)
尝试
rake db:create:all
是的,在Rails应用程序中可以有多个数据库连接。
这就是我曾经做过的,我创建了两个继承自ActiveRecord::Base
的类,并设置了这些类中的连接。
然后我在其中一个类中继承了我的所有模型而不是直接ActiveRecord
以下是一个例子:
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
然后我有两个test1和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
然后我根据数据库继承我的模型:
class School < Test1Base
#code
end
class Student < Test2Base
#code
end
答案 1 :(得分:2)
感谢您的回复。
我们可以迁移特定数据库的模型,例如
db:migrate RAILS_ENV="portal_development"'
。
与DB建立连接的更多更改。检查下面更正的
class Test1Base < ActiveRecord::Base
self.abstract_class = true
establish_connection :development
end
class Test2Base < ActiveRecord::Base
# No corresponding table in the DB.
self.abstract_class = true
establish_connection :portal_development
end
感谢你们的回复。
欢呼声
Shamith c
答案 2 :(得分:0)
可能使用active_delegate
?
http://railslodge.com/plugins/595-active-delegate