Я использую подключаемый модуль ведения журнала аудита 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.
Я что-то упустил? Или есть другое решение для решения моей проблемы с размером таблицы?