sql >> Database teknologi >  >> RDS >> PostgreSQL

Brug af flere PostgreSQL-skemaer med Rails-modeller

PostgreSQL-adapter schema_search_path i database.yml løser dit problem?

development:
  adapter: postgresql
  encoding: utf-8
  database: solidus
  host: 127.0.0.1
  port: 5432
  username: postgres
  password: postgres
  schema_search_path: "discogs,public"

Eller du kan angive forskellige forbindelser for hvert skema:

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"

Efter hver defineret forbindelse skal du oprette to modeller:

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

Og alle dine modeller arver fra det respektive skema:

class MyModelFromPublic < PublicSchema
  set_table_name :my_table_name
end

class MyOtherModelFromDiscoGs < DiscoGsSchema
  set_table_name :disco
end

Jeg håber, det hjælper.



  1. Syntetisk datagenerering

  2. 4 måder at finde rækker, der indeholder store bogstaver i MariaDB

  3. Hvordan Atand() virker i PostgreSQL

  4. Brug af flere felter til en unik nøgle i Prisma