如何打开rails控制台以访问rails 6中的多个数据库?
Posted
技术标签:
【中文标题】如何打开rails控制台以访问rails 6中的多个数据库?【英文标题】:How to open rails console for access multiple database in rails 6? 【发布时间】:2021-10-27 02:04:49 【问题描述】:我的项目中有多个数据库,我想打开 rails 控制台来访问这两个数据库。
目前我只能获取一个默认数据库的数据。
也就是说,如何打开特定的数据库控制台?
【问题讨论】:
请提供更多信息。你试过什么?错误是什么?数据库是什么?它们是如何配置的? activerecord 是如何设置的?通常,rails 控制台将连接到所有数据库,而 activerecord 将连接到它们配置的那个......所以你不需要做任何事情。 【参考方案1】:您为什么不阅读文档https://guides.rubyonrails.org/active_record_multiple_databases.html。 你应该能够找到你需要的东西。 connected_to 会自动或手动完成数据库切换的技巧。
或者 https://api.rubyonrails.org/classes/ActiveRecord/ConnectionHandling.html#method-i-connected_to
ActiveRecord::Base.connected_to(database: :mydb) do
# Do something here...
end
【讨论】:
【参考方案2】:也就是说,如何打开特定的数据库控制台?
来自official guide:
bin/rails dbconsole
找出您正在使用的数据库,然后将您放入您将使用的任何命令行界面(并找出提供给它的命令行参数!)。它支持 mysql(包括 MariaDB)、PostgreSQL 和 SQLite3。您也可以使用别名“db”来调用 dbconsole:
bin/rails db
。如果您使用多个数据库,
bin/rails dbconsole
将 默认连接到主数据库。您可以指定哪个 使用--database
或--db
连接的数据库:bin/rails dbconsole --database=animals
所以命令是
rails db --db=db_name_from_database_yml
例如,您的database.yml
中有
production:
my_primary:
adapter: postgresql
database: some_db_name
在这种情况下,您的命令将是
bundle exec rails db --db=my_primary -e=production
【讨论】:
@machnicov 这不是正确的答案。我想打开 rails 控制台而不是 db 控制台。感谢您的宝贵时间。 @JigarBhatt 这意味着您的问题不正确,而不是我的回答。请再次阅读并在必要时编辑问题 是的,我更新了我的问题,现在你知道答案了吗?以上是关于如何打开rails控制台以访问rails 6中的多个数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Rails 6中获取用户与朋友的多对多关联的created_at?