gpt4 book ai didi

database - Grails 数据库迁移插件 - Java 堆空间

转载 作者:行者123 更新时间:2023-12-02 15:34:35 25 4
gpt4 key购买 nike

我正在运行 grails 1.3.7 并使用 grails 数据库迁移插件版本 database-migration-1.0

我遇到的问题是我有一个迁移更改集。那就是将 blob 从表中拉出并将它们写入磁盘。在运行此迁移时,虽然我的堆空间用完了。我在想我需要刷新和清除 session 以释放一些空间,但是我很难从迁移中访问 session 。顺便说一句,迁移的原因是我们不再将文件存储在 oracle 中,而是将它们放在磁盘上

我试过了

SessionFactoryUtils.getSession(sessionFactory, true)

我也试过
SecurityRequestHolder.request.getSession(false)   //request in null -> not surprising
changeSet(author: "userone", id: "saveFilesToDisk-1") {
grailsChange{
change{
def fileIds = sql.rows("""SELECT id FROM erp_file""")
for (row in fileIds) {
def erpFile = ErpFile.get(row.id)
erpFile.writeToDisk()
session.flush()
session.clear()
propertyInstanceMap.get().clear()
}
ConfigurationHolder.config.erp.ErpFile.persistenceMode = previousMode
}
}
}

任何帮助将不胜感激。

最佳答案

应用程序上下文将在您的迁移中自动提供为 ctx .您可以像这样获得 session :

def session = ctx.sessionFactory.currentSession

关于database - Grails 数据库迁移插件 - Java 堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com