sql >> データベース >  >> RDS >> PostgreSQL

Railsモデルで複数のPostgreSQLスキーマを使用する

    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
    

    お役に立てば幸いです。



    1. 行タイプをチェックするときにISNOTNULLがfalseになるのはなぜですか?

    2. クエリストア:挿入に対するインデックスの影響を表示する

    3. PostgreSQL EXPLAIN –クエリコストはいくらですか?

    4. SQLServer2005のアトミックUPSERT