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

编程入门 行业动态 更新时间:2024-10-28 11:33:16
本文介绍了Rails Postgresql多个模式和相同的表名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在两个不同的模式下有两个表,例如 个案例和事件。

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'

我需要回答以下问题:

  • 如何在Rails Active Record中处理这种情况?
  • 如何查询此表?
  • 如何在 rake db:schema:dump
  • how to handle this situation in Rails Active Record?
  • how to query this tables?
  • how to handle this situation in rake db:schema:dump
  • 编辑:

    在更改 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多个模式和相同的表名

    本文发布于:2023-10-15 11:50:18,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1494251.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:多个   模式   Rails   Postgresql

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!