相关疑难解决方法(0)

Rails Postgresql有多个模式和相同的表名

我有两个不同模式的表,例如 casesevents.

在每个模式中,我有基本表

  • events.basic
  • cases.basic

这个表有关系:

  • events.basic有一个cases.basic(cases.basic有很多events.basic)

我的尝试失败了:

文件 cases_basic.rb

class CasesBasic < ActiveRecord::Base
  set_table_name 'cases.basic'
  set_primary_key 'case_id'
  has_many :Events, :class_name => 'EventsBasic', :foreign_key => 'case_id'
end
Run Code Online (Sandbox Code Playgroud)

文件 events_basic.rb

class EventsBasic < ActiveRecord::Base
  set_table_name 'events.basic'
  set_primary_key 'event_id'
  belongs_to :Case, :class_name => 'CasesBasic', :foreign_key => 'case_id'
end
Run Code Online (Sandbox Code Playgroud)

环境:Ruby 1.9.3,Rails 3.1.3,gem 'pg'

我需要回答这个问题:

  1. 如何在Rails Active Record中处理这种情况?
  2. 如何查询这个表?
  3. 如何处理这种情况 rake db:schema:dump

编辑:

改变后belongs_tohas_many(如嘘声建议)我有同样的错误

PGError: ERROR:  column …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql schema activerecord ruby-on-rails

6
推荐指数
1
解决办法
4233
查看次数

self.table_name 在具有不同 rails 架构的模型中不起作用

下面是用于创建设置架构和添加表创建userrole

class CreateSettingSchema < ActiveRecord::Migration[5.0]
    def up
    execute 'CREATE SCHEMA settings'
    create_table "settings.users" do |t|
      t.string :name
      t.string :email
      t.string :phone
      t.string :address
      t.timestamps
    end

    create_table "settings.roles" do |t|
      t.string :name
            t.timestamps
    end
  end

  def down
    drop_table "settings.roles"
    drop_table "settings.users"
    execute 'DROP SCHEMA settings'
  end

end
Run Code Online (Sandbox Code Playgroud)

我的数据库配置

default: &default
  adapter:  postgresql
  host:     localhost
  encoding: unicode
  pool:     5
  username: postgres
  password: postgres
  schema_search_path: settings,public
development:
  <<: *default
  database: enc_attr_development
  username: postgres
  password: postgres
Run Code Online (Sandbox Code Playgroud)

我正在使用self.table_name将模型与数据库表相关联

class SettingRole …
Run Code Online (Sandbox Code Playgroud)

postgresql activerecord ruby-on-rails ruby-on-rails-5

4
推荐指数
1
解决办法
664
查看次数

在 Rails 应用程序中查询不同模式数据以进行读+写

我有两个 Rails 应用程序base1base2.

base1db1在该数据库中使用并拥有多个租户,其使用公寓 gem。

base2是单租户应用程序,以数据库db2为主,并且还使用来自db1.

现在的问题是base2应用程序建立了连接,我可以在应用程序中获取公共租户中的db1数据数据。如何从应用程序的不同模式中获取数据?db1base2
db1base2

ruby ruby-on-rails apartment-gem

3
推荐指数
1
解决办法
760
查看次数