Seg*_*Dev 4 database postgresql schema ruby-on-rails
我有一个单独的服务器,其中包含 Ruby on Rails API(DB 是 postgres),它将由多个不同的应用程序使用。我正在考虑使用模式对每个应用程序需要的表进行排序,并有一个“通用”模式,其中包含应用程序将共享的表(用户、员工等)。每个应用程序模式将包含大约 10 个表,而公共模式将包含大约 15 个表。当前计划是让大约 3-5 个使用此 API 的应用程序都使用相同的公共表。
我的问题是,是否值得使用 Ruby on Rails 实现 Postgres 架构?我一直在寻找有关该主题的一些资源,但似乎没有太多相关信息。有几篇文章写于 2011/2012 年,但没有更接近 2018 年的。我一直在寻找的主要内容之一是如何正确使用 postgres 模式创建 Rails 迁移。
我还读到一个用户的评论,说他们已经分别使用 postgres 和 Rails,但永远不会结合使用它们。
使用模式来组织数据库感觉是个好主意,但如果需要大量手动数据库工作/维护,则不想走这条路。
谢谢,
这可以使用 Rails 轻松实现,但您必须覆盖 Rails 期望的默认表名称以指向特定的架构:
class YourSchemaRecord < ApplicationRecord
self.table_name_prefix = 'name_of_your_schema.'
end
class SomeRecord < ApplicationRecord
end
class YourCommonSchemaRecord < ApplicationRecord
self.table_name_prefix = 'public.'
end
class SomeCommonRecord < YourCommonSchemaRecord
end
Run Code Online (Sandbox Code Playgroud)
关于 Rails 迁移,您可以使用纯 SQL(我最喜欢的选项)或使用 Rails 的内置方法,但给出要更新结构的表的“完整路径”:
add_column 'name_of_your_schema.some_records', :some_column, :string
Run Code Online (Sandbox Code Playgroud)