首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何通过database.yml在Rails应用程序中使用多个数据库

如何通过database.yml在Rails应用程序中使用多个数据库
EN

Stack Overflow用户
提问于 2012-04-28 04:55:06
回答 1查看 4.9K关注 0票数 5

我已经阅读了关于如何做到这一点的文档,但在实践中,我遇到了一些问题。在我的应用程序中,我有两个不同的数据库,如下我的database.yml文件中所述。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlite_test:
    adapter: sqlite3
    database: db/sqlite_test.sqlite3
    table: plots
    pool: 5
    timeout: 5000

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: test
  pool: 5
  username: myname
  password: mypassword
  host: localhost

我的应用程序是一个动态绘图仪,它将绘制(基本)数据库中的数据,而不需要了解数据库中的内容或其结构。这两个数据库包含不同的数据。我在单独的Rails应用程序中创建的SQLite数据库。

我当前使用的应用程序是围绕MYSQL数据库构建的,而MYSQL数据库是我在外部构建的。我将SQLite数据库复制到/db目录中。所以在我的主要模型中,当我说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  class Plot < ActiveRecord::Base

  establish_connection :development
  set_table_name "stock_test"
  set_primary_key :id

一切都做得很好。但是,当我将其更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 establish_connection :sqlite_test
 set_table_name "plots"

并尝试通过Rails控制台访问该数据库,我收到一个错误消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter

我不知道为什么,因为database.yml文件明确指定了适配器?然而,当我在我的模型中手工操作时,一切都完全正常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5 )

为什么当我手动指定database.yml中的内容时,所有这些都可以工作,而当我只使用database.yml引用时却不起作用?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-08 01:45:34

我试着复制,并让它工作。这与命名约定有关:您处于开发模式,AR将查找开发标记,在您的示例中,sqlite不存在该标记。

这是我的database.yml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
development:
  adapter: mysql2
  database: se_development
  username: root
  pool: 5
  timeout: 5000

sqlite_development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

以下是模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Plot < ActiveRecord::Base
  establish_connection 'sqlite_' + Rails.env
end

对我很管用。希望这能有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10360705

复制
相关文章
LeetCode 1262. 可被三整除的最大和(DP)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/greatest-sum-divisible-by-three 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
6240
LeetCode 1262. 可被三整除的最大和(DP)
LeetCode 1015. 可被 K 整除的最小整数(数学)
1. 题目 给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。 返回 N 的长度。如果不存在这样的 N,就返回 -1。 示例 1: 输入:1 输出:1 解释:最小的答案是 N = 1,其长度为 1。 示例 2: 输入:2 输出:-1 解释:不存在可被 2 整除的正整数 N 。 示例 3: 输入:3 输出:3 解释:最小的答案是 N = 111,其长度为 3。 提示: 1 <= K <= 10^5 来源:力扣(LeetCode) 链接:https://leetcode-
Michael阿明
2020/07/13
9400
LeetCode 1018. 可被 5 整除的二进制前缀
给定由若干 0 和 1 组成的数组 A。 我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。
Michael阿明
2020/07/13
3310
LeetCode 974. 和可被 K 整除的子数组(哈希map)
给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。
Michael阿明
2020/07/13
6140
Leetcode 1010. 总持续时间可被 60 整除的歌曲
返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。
zhipingChen
2020/01/02
5700
LeetCode刷题DAY 25:和可被 K 整除的子数组
给定一个整数数组A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。如输入
三猫
2020/06/02
4500
LeetCode 1010. 总持续时间可被 60 整除的歌曲(哈希)
返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。
Michael阿明
2020/07/13
5760
LeetCode 1010. 总持续时间可被 60 整除的歌曲(哈希)
整除的尾数_整除数
一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
全栈程序员站长
2022/11/15
6950
力扣刷题笔记--6220. 可被三整除的偶数的平均值
给你一个由正整数组成的整数数组 nums ,返回其中可被 3 整除的所有偶数的平均值。
C_H
2022/11/15
2320
整除的尾数(整除问题) - HDU 2099
最近在写POJ 2449,暂时还没写完,目前上卷的题目基本都涉及到了,后面会接着加强,特别是动态规划方面的题目,因为比较灵活也比较难。
ACM算法日常
2018/08/07
9280
整除的尾数(整除问题) - HDU 2099
ABC的整除问题
给定三个非负整数 A,B,C,且保证 A\le B,C\ne 0,求在区间 [A, B] 中,存在多少个整数可以被 C 整除?
浪漫主义狗
2023/03/01
2.3K0
Python中的整除
#这是浮点除法, 得到的结果是浮点数(float) var = 3/2 #得到的结果是整数1, 这是整除类似于某些编程语言的"\" var = 3//2 #这是四舍五入 var1 = round(3/2) #结果为2 var2 = round(2.8/2) #结果为1 import math var = 3/2 var = math.floor(var) #结果为1, 这个floor函数意思是取得小于等于这个数的整数
py3study
2020/01/10
1.6K0
整除计算器_0 整除
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
全栈程序员站长
2022/09/22
7180
python整除和取余写法_Python的整除和取余[通俗易懂]
参考:https://blog.csdn.net/sun___M/article/details/83142126
全栈程序员站长
2022/09/01
1.8K0
[每日一题]数字整除
C语言的奇葩之一就是明明可以直接除以17解决的问题偏偏要搞得这么麻烦 但我们能有什么办法呢,只能说是对思想的锻炼了呗! 题目描述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。 例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。 输入 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<
编程范 源代码公司
2018/04/18
1.1K0
整除个数
1、2、3… …n这n(0<n<=1000000000)个数中有多少个数可以被正整数b整除。
书童小二
2018/09/03
7190
HDOJ 2099 整除的尾数
Problem Description 一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
谙忆
2021/01/20
5800
基于逻辑规则的图谱推理
导读: 近年来,知识图谱在众多行业场景被大量应用,例如推荐、医疗。为了构造尽可能完备的图谱,知识图谱的推理工作也成为学术届和工业界的一个重要研究课题。来自Mila人工智能实验室的瞿锰博士,给大家分享了他们在图谱推理任务方向的一个研究:基于逻辑规则的图谱推理(RNNLogic: Learning Logic Rules for Reasoning on Knowledge Graphs),研究结果显示RNNLogic可以很好地兼顾图谱推理任务的模型效果和可解释性的问题。
DataFunTalk
2022/05/02
1.5K0
整除分块思想
对于求形如 \(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor\) 的值,就需要用到整除分块,否则当n很大时就会超时。在普通的一个一个的计算时可以发现很多\(\lfloor\frac{n}{i}\rfloor\)的值成块状分布,最终的到的规律是发现对于每一个值相同的块,它的最后一个数就是n/(n/i)
_DIY
2019/08/23
9300
点击加载更多

相似问题

可被2整除: Python

53

关于:a的个数可被6整除,b的数目可被8整除

16

递归法计算可被2整除的元素

120

可被2整除的数字计数器

35

生成可被2整除的随机数

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文