Railsのモデルで複数のPostgreSQLスキーマを使用する
2023-11-06 20:09:31
質問
Railsアプリケーション用にPostgreSQLデータベースを持っています。public'という名前のスキーマに、主なRailsモデルのテーブルなどが格納されています。discogs'スキーマを作成しましたが、'public'スキーマと同じ名前のテーブルを持つことがあり、これがスキーマを使って整理している理由の1つです。
私のアプリで 'discogs' スキーマからどのようにモデルをセットアップしますか。私は、Sunspot を使用して、Solr にこれらのモデルのインデックスを作成させるつもりです。これをどのように行うか不明です。
どのように解決するのですか?
database.yml の PostgreSQL アダプタ schema_search_path で解決しましたか?
development:
adapter: postgresql
encoding: utf-8
database: solidus
host: 127.0.0.1
port: 5432
username: postgres
password: postgres
schema_search_path: "discogs,public"
また、スキーマごとに異なる接続を指定することも可能です。
public_schema:
adapter: postgresql
encoding: utf-8
database: solidus
host: 127.0.0.1
port: 5432
username: postgres
password: postgres
schema_search_path: "public"
discogs_schema:
adapter: postgresql
encoding: utf-8
database: solidus
host: 127.0.0.1
port: 5432
username: postgres
password: postgres
schema_search_path: "discogs"
各接続を定義した後、2つのモデルを作成します。
class PublicSchema < ActiveRecord::Base
self.abstract_class = true
establish_connection :public_schema
end
class DiscoGsSchema < ActiveRecord::Base
self.abstract_class = true
establish_connection :discogs_schema
end
そして、すべてのモデルはそれぞれのスキーマを継承します。
class MyModelFromPublic < PublicSchema
set_table_name :my_table_name
end
class MyOtherModelFromDiscoGs < DiscoGsSchema
set_table_name :disco
end
お役に立てれば幸いです。
関連
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] 複数のデータベースをそれぞれ1つのスキーマで使用するのと、1つのデータベースを複数のスキーマで使用するのと、どちらが良いですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] rails/rubyでgroup_byを使用する。
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".