У меня есть две таблицы в двух разных схемах, например.
cases
и events
.
В каждой схеме у меня есть таблица basic
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
файл 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
Enviroment:
Ruby 1.9.3
, Rails 3.1.3
, gem 'pg'
Мне нужен ответ на следующие вопросы:
rake db:schema:dump
EDIT:
После изменения belongs_to
и has_many
(как предлагает Catcall) у меня та же ошибка
PGError: ERROR: column basic.case_id does not exist
LINE 1: ...IN "cases"."basic" ON "cases"."basic"."case_id" = "events"."...
^
: SELECT "events"."basic".* FROM "events"."basic" INNER JOIN "cases"."basic" ON "cases"."basic"."case_id" = "events"."basic"."case_id" LIMIT 3
Rails генерирует плохой SQL. Я должен быть закончен, используя некоторые псевдонимы:
SELECT t1.* FROM "events". "basic" t1 INNER JOIN "cases". "basic" t2 ON t1. "case_id" = t2. "case_id" LIMIT 3
EDIT 2: Это была моя ошибка, я не добавил столбец events.basic.case_id и внешний ключ в моей базе данных. Это работает!
Вопросы 1 и 2 работают, но у нас есть вопрос о rake db:schema:dump
что с этим делать? Rails генерирует модели только для публичных схем.
У меня так много таблиц и отношений, что я хочу их сгенерировать.