当前位置: 首页 > 知识库问答 >
问题:

通过GORM执行SQL而不使用干运行模式

墨翔宇
2023-03-14

有没有可能在不使用DryRun的情况下让Gorm运行SQL?我想运行SQL,如果这SQL错误,我想把它和其他几个信息一起记录在日志中。有什么办法能找回这个被处决的SQL吗?

共有1个答案

萧萧迟
2023-03-14

有两种方法可以实现在日志中SQL

如果只想为特定查询输出SQL,则使用db.Debug()将该查询的日志级别更改为INFO

db.Debug().Where("name = ?", "jinzhu").First(&User{})

如果要为应用程序全局输出SQL,请在初始化gorm.DB实例时配置记录器

newLogger := logger.New(
    log.New(os.Stdout, "\r\n", log.LstdFlags),
    logger.Config{
        LogLevel:                   logger.Info, // Log level Info will output everything
    },
)

// Globally mode
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{
    Logger: newLogger,
})

详细信息在gorm logger。

 类似资料:
  • 问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc

  • 问题内容: 我正在使用,并且 一直在尝试使用hibernate模式执行sql查询。我写过: 该查询不在数据库中执行。但是如果我写 相应的行将添加到表中。为什么hibernate不起作用,但是本机查询和JDBC一起起作用? 问题答案: 这应该对您有帮助。

  • 我有一个情况需要处理,我有我的liquibase按照推荐的最佳实践进行结构化。更改日志xml的结构如下所示 在我们的应用程序组中,我们运行updateSQL来生成统一的sql文件,并通过我们的DBA组执行更改。 如何在Liquibase ChangeLog中包含这些常见的重复语句。

  • No alarms and no surprises. — Radiohead 我讨厌惊喜。有时你的 Puppet 配置清单没有像你预期的那样执行, 或者在你不知情的情况下,或许别人又提交了改变。 不管哪种情况发生,在 Puppet 执行配置清单之前能精确地获知它将要执行些什么是非常必要的。 例如,若更新了一个生产服务的配置文件并重新启动该服务,很可能会导致非计划性的停机时间。 又如,有时人为的手

  • 步骤1:在此基础上,我使用构建了一个包含所有依赖项的独立jar。 pom.xml 将方法添加到runner类,并根据this、this和this传递cmdline arg。 如何通过cmdline args指向JAR中的目录?

  • 我有一个带有Spring Boot的多级Maven项目。 对于父项目,父项目定义如下: 对于项目1、库项目和项目2: 项目 1 和项目 2 依赖于库项目中的类。当我从 Eclipse 执行时,项目 1 和项目 2 都会在库项目中找到它们的所有类和所有类。当我创建项目 1 时.jar 然后运行它,我在LibraryProject中的类上获得ClassNotFoundExceptions。Librar