我在两个不同的模式下有两个表,例如 个案例和事件。
I have two tables in two different schemas e.g. cases and events.
在每个模式中,我都有基本的表
In each schema I have table basic
- events.basic
- cases.basic
- events.basic
- cases.basic
此表具有以下关系:
- events.basic 有一个 cases.basic ( cases.basic 有很多 events.basic )
- events.basic has one cases.basic (cases.basic has many 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环境: Ruby 1.9.3 ,Rails 3.1.3 , gem'pg'
Enviroment: Ruby 1.9.3, Rails 3.1.3, gem 'pg'
我需要回答以下问题:
编辑:
在更改 belongs_to 和 has_many (如Catcall建议)后,我有相同的错误
After changing belongs_to and has_many (like Catcall suggest) i have the same error
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铁路发生吃了不好的SQL。我应该使用一些别名来完成操作:
Rails generate bad SQL. I should be done using some aliases:
选择t1。*从事件。基本 t1内联接案例。基本 t2 ON t1。 case_id = t2。 case_id限制3
SELECT t1.* FROM "events"."basic" t1 INNER JOIN "cases"."basic" t2 ON t1."case_id" = t2."case_id" LIMIT 3
编辑2:是我的** *错误,我没有在示例数据库中添加events.basic.case_id列和外键。 它有效!
问题1和2起作用,但我们对 rake db:schema:dump 怎么样? Rails只为公共模式生成模型。
Questions 1 AND 2 are working but we have question about rake db:schema:dump what about it? Rails generates models only for public schema.
我有太多的表和关系想要生成它们。
I have so many tables and relations that i want to generate them.
推荐答案我建议使用 pg_power宝石。它提供了在以下迁移中创建PostgreSQL模式的语法:
I would recommend using pg_power gem. It provides syntax for creating PostgreSQL schemas in migrations like this:
def change drop_schema 'demography' create_schema 'politics' end还要注意将模式转储到schema.rb文件中正确。
And also takes care about dumping schemas into schema.rb file correctly.
更多推荐
Rails Postgresql多个模式和相同的表名
发布评论