- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我希望能够在 Rails 4 应用程序中的不同数据库架构之间切换。
计划是在堆栈的最开始添加一个新的中间件来为我做这件事。
唯一的方法是设置 ActiveRecord::Base.connection.schema_search_path = '"$user",my_schema'
。
我遇到的问题是此连接将转到池中,并且所有后续请求都将使用在第一个请求中设置的架构(基本上是通过泄漏)。
所以我看到的解决方案是始终将搜索路径重置为之前的内容,并始终在每次请求时进行设置。
但我不想这样做,因为:
public
) 模式,执行 set search_path to '$user$,my_schema'
将是额外的查询,可能有被回避了所有这些尤其适用于线程服务器,例如 Puma。
那么,对于我的带有中间件的解决方案,是否有更好的替代方案?
谢谢。
最佳答案
当您将连接返回到池中时,您必须确保池运行 DISCARD ALL;
以重置连接状态。
这将清除所有SET ROLE
、SET SESSION AUTHORIZATION
、 session 变量、search_path
设置等。
关于ruby-on-rails - 更改连接 search_paths 的线程安全方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21746181/
我在 RedHat 上使用 PostgreSQL 9.0.3。数据库包含两个模式,public 和 wh。我创建了一个名为 django 的新角色。我希望此用户使用默认的 wh 架构。 按照手册,我做
这个问题在这里已经有了答案: Permanently Set Postgresql Schema Path (4 个答案) 关闭 10 年前。 我想将默认的 search_path 设置为“公共(p
查看 CocoaPods 自己的示例后(来自 https://guides.cocoapods.org/syntax/podfile.html#abstract_target ) # Note: Th
我在 Postgres 上创建了一个长度大于 63 bytes 的新模式人物。 CREATE SCHEMA "abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqr
我需要转储代码中的完整名称,没有 psql 指令...那么,如何禁用 SET search_path = schema 模式并启用直接表达模式名称? 最佳答案 pg_dump 无法做到这一点。如果您确
我需要在查询之前设置搜索路径。新的搜索路径应该基于函数参数。我到底该怎么做?现在我有: CREATE FUNCTION get_sections(integer) RETURNS table(id i
当我使用 pg_dump 从数据库导出模式时,它会在开头添加以下行: SELECT pg_catalog.set_config('search_path', '', false); 是否可以设置一个选
我希望 JMeter 在 lib/ext/custom 中找到一个 jar。 在我的 jmeter.properties 中: search_paths=lib/ext/custom 当我运行测试时,
我有一个 Postgres 数据库,其中的表分布在多个模式中。对于那些没有指定模式名称的表,我有大量预先存在的模型(最初的设计是将所有表保持在单一模式下) 有没有办法为以 PDO_PGSQL 为驱动程
PostgreSQL 有一个查询特定模式的选项。 SET search_path TO SCHEMA_NAME 它会导致任何伪影吗? 使用它有多安全? 最佳答案 更改 search_path 会更改在
是否可以定义在默认情况下创建新表的模式? (由“不合格的表名”引用。) 我看过一些关于在 Postgres 中使用“搜索路径”的细节,但我认为它只在检索数据时有效,而不是在创建数据时有效。 我有一堆
我希望能够在 Rails 4 应用程序中的不同数据库架构之间切换。 计划是在堆栈的最开始添加一个新的中间件来为我做这件事。 唯一的方法是设置 ActiveRecord::Base.connection
我正在开发一个使用 PostgreSQL 作为数据库的 Multi-Tenancy Web 应用程序,因为它支持一个数据库实例中的模式。但我遇到了一个问题,为租户设置搜索路径。 我正在使用 JavaE
出于测试目的,我提供了我自己的 now() 函数实现,即 public.now()。使用 search_path 用我自己的版本覆盖默认的 pg_catalog.now() 大多数情况下是可行的,但我
有谁知道如何在 postgresql 中将 search_path 恢复为默认值?我更改了它的值,但现在我想再次使用默认值。感谢您的帮助。 程 最佳答案 试试这个: SET search_path T
回到 jOOQ 2.5 看起来你可以通过 FactoryOperations 设置 PostgreSQL search_path类,但该类在 jOOQ 3.5 中消失了。显然 FactoryOpera
如何在 psql 命令中包含多个搜索路径,以便可以使用不同的搜索路径运行多个文件,但所有文件都在一个事务中运行? psql --single-transaction --command="se
我有一个相当大的 PostgreSQL 数据库,其中包含多达 300 个来自 Web 应用程序和一些后台处理的连接客户端。 我正在考虑添加 PGbouncer,因为据我所知,由于连接开销,postgr
我为每个在创建时定义了 search_path 的模式设置了多个函数: CREATE OR REPLACE FUNCTION the_schema.update_complete_url(update
我想为我的 Phoenix 应用程序使用特定的 Postgres 架构。 我试图通过 Ecto.Repo.after_connect/1 回调来实现这一点,但它似乎在超时前递归创建新的数据库连接大约
我是一名优秀的程序员,十分优秀!