我正在运行 grails 1.3.7 并使用 grails 数据库迁移插件版本 database-migration-1.0
我遇到的问题是我有一个迁移更改集。那就是将 blob 从表中拉出并将它们写入磁盘。在运行此迁移时,虽然我的堆空间用完了。我在想我需要刷新和清除会话以释放一些空间,但是我很难从迁移中访问会话。顺便说一句,迁移的原因是我们不再将文件存储在 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
}
}
}
任何帮助将不胜感激。