私は grails 1.3.7 を実行しており、grails データベース移行プラグイン バージョン database-migration-1.0 を使用しています。
私が抱えている問題は、移行変更セットがあることです。つまり、テーブルから BLOB を取り出してディスクに書き込みます。この移行を実行すると、ヒープ領域が不足します。スペースを解放するためにセッションをフラッシュしてクリアする必要があると考えていましたが、移行内からセッションにアクセスするのが困難です。ところで、移行中の理由は、ファイルをオラクルに保存してディスクに配置することから離れているためです
私が試してみました
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
}
}
}
どんな助けでも大歓迎です。