回答編集履歴

1

モデルの接続先を変更する例を追記しました

2017/09/15 12:27

投稿

mingos
mingos

スコア4025

test CHANGED
@@ -13,3 +13,87 @@
13
13
  前回も回答しましたが、Railsのモデルにするべきだしそのほうが簡単です。
14
14
 
15
15
  モデルは個別に接続先のDBを変更できるので、MySQLに対応するモデルにだけ接続先を設定するだけで済みます。
16
+
17
+
18
+
19
+ ## 追記
20
+
21
+
22
+
23
+ モデルの接続先を変更する例を示します。
24
+
25
+ ここでは、外部のデータベース(MySQL)にitemsというテーブルが存在するという想定で説明します。
26
+
27
+
28
+
29
+ ### database.ymlにMySQLの接続情報を好きな名前で追加する
30
+
31
+
32
+
33
+ ここではotherdb_devという名前にする。
34
+
35
+
36
+
37
+ * config/database.yml
38
+
39
+ ```
40
+
41
+ # 通常の接続設定
42
+
43
+ development:
44
+
45
+ ...
46
+
47
+ test:
48
+
49
+ ...
50
+
51
+ production:
52
+
53
+ ...
54
+
55
+
56
+
57
+ # mysqlの接続設定をここに書く
58
+
59
+ otherdb_dev:
60
+
61
+ adapter: mysql2
62
+
63
+ database: ...
64
+
65
+ username: ...
66
+
67
+ password: ...
68
+
69
+ host: ...
70
+
71
+ port: ...
72
+
73
+
74
+
75
+ ```
76
+
77
+
78
+
79
+ ## モデルを手動で作成して接続先を設定する
80
+
81
+
82
+
83
+ * app/models/item.rb
84
+
85
+ ```ruby
86
+
87
+ class Item < ApplicationRecord
88
+
89
+ establish_connection :otherdb_dev
90
+
91
+ end
92
+
93
+ ```
94
+
95
+
96
+
97
+ 以上で、rails consoleでItem.firstとかItem.countなど普通の操作が出来るようになります。
98
+
99
+ その接続先は、database.ymlのother_devの内容です。