ruby-on-rails - Activerecord 记录 sql 格式
问题描述
我使用 Sinatra 作为网络服务器,使用 Activerecord 作为 ORM。我的适配器是 oracle_enhanced。我像这样激活日志记录
LOG = Logger.new( "./logs/#{File.basename(__FILE__)}_log.txt", 'daily' )
ActiveRecord::Base.logger = LOG
ActiveSupport::LogSubscriber.colorize_logging = false
一切都很好,除非我更新模型时它以这种形式记录
D, [2018-11-05T09:38:11.426185 #5540] DEBUG -- : SQL (0.0ms) UPDATE "MYTABLE"
SET "DESCRIPTION" = :a1 WHERE "MYTABLE"."ID" = 10121 [["description", "some text"]]
更糟糕的是,如果这导致错误,则 sql 只是部分的,参数部分会丢失..
有没有办法通过以下方式获取日志记录,以便我可以在例如 Sql*Plus 或 SqlDeveloper 中执行 sql?
UPDATE "MYTABLE" SET "DESCRIPTION" = "some text" WHERE "MYTABLE"."ID" = 10121
我还想知道哪个 SQL 被有效执行,在 Sql*Plus 或 SqlDeveloper 中记录的语法不起作用。
不知道这是单独在 Oracle/oracle_enhanced 适配器中还是在其他适配器中也是如此。
解决方案
推荐阅读
- caching - 是否可以禁用特定地址范围的缓存
- ssis - SSIS - 如何使用包部署模型从子包中设置父变量值
- ruby-on-rails - 进入新行时,Actiontext Editor 中的图像会闪烁或刷新
- node.js - 使用 nodeJs 从 AWS SQS 队列获取待处理消息计数
- typescript - 根据函数参数推断回调参数类型
- javascript - 如何在 jQuery ajax 中使用 GET 请求发送原始数据?
- c# - 带有定时器方法的接口事件
- ansible - Ansible:使用模式复制多个文件以分隔多个目标
- javascript - 我的连接闪存在 registerProcess 中工作,但在 showForm 中给我空数组这是什么问题?
- vue.js - 在我的 Vue 项目中使用 v-for 没有得到任何输出