Для Grails (3.0.17) есть ли способ использовать несколько источников данных для ведения журнала аудита? - PullRequest
0 голосов
/ 08 мая 2020

Я использую подключаемый модуль ведения журнала аудита grails (2.0.1) для записи журналов аудита для моего приложения. Проблема в том, что размер моей таблицы журнала аудита (mysql) увеличился примерно до 10 ГБ (следовательно, производственные данные нельзя удалить), что ухудшило производительность нашего приложения. Я искал решения и обнаружил, что если мы сможем использовать вторичный источник данных для ведения журнала аудита, это может нам помочь. Но поскольку я попытался включить другой источник данных в приложение . groovy

environments {
    development {
        dataSource {

            driverClassName = "com.mysql.jdbc.Driver"
            dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
            pooled = true
            username = "root"
            logSql = false
            password = "12345"
            dbCreate = "update"
            url = "jdbc:mysql://localhost:3306/demo_apr_1?autoreconnect=true&allowMultiQueries=true&useUnicode=yes&characterEncoding=UTF-8"
        }

        datasources{
           dataSource_secondary{
               driverClassName = "com.mysql.jdbc.Driver"
               dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
               pooled = true
               username = "root"
               logSql = false
               password = "12345"
               dbCreate = "update"
               url = "jdbc:mysql://localhost:3306/demo_may_1?autoreconnect=true&allowMultiQueries=true&useUnicode=yes&characterEncoding=UTF-8"
           }
        }

    }
}

И в Model AuditTrail:

static mapping = {
        datasource 'dataSource_secondary'
        table 'audit_log'
        cache usage: 'read-only', include: 'non-lazy'
}

Но поскольку я пытаюсь выполните обновление / вставку любого события, получив следующее:

ERROR grails.plugins.orm.auditable.AuditLogListener - Failed to create com.audit.AuditTrail for AuditTrail1_groovyProxy@27e4215: Method on class [com.audit.AuditTrail] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly.

Я что-то упустил? Или есть другое решение для решения моей проблемы с размером таблицы?

...