Memory Knex.js:JavaScript内存不足

Memory Knex.js:JavaScript内存不足,memory,knex.js,Memory,Knex.js,我正在从事一个使用knex.js进行数据库迁移的项目。我试图用这种方式查询数据并将其插入新表中 return knex.schema.raw(`select * from transactions`) .then(result =>{ console.log('Migrating transactions') return knex('new_transactions').insert(result['rows']) })

我正在从事一个使用knex.js进行数据库迁移的项目。我试图用这种方式查询数据并将其插入新表中

    return knex.schema.raw(`select * from transactions`)
    .then(result =>{
        console.log('Migrating transactions')
        return knex('new_transactions').insert(result['rows'])
    })

    .catch((err)=>{
        console.error(err)
    })
}
但是,由于该表中有大量数据,因此会抛出如下错误

<--- Last few GCs --->

[8748:0x102641000]    18957 ms: Mark-sweep 1182.2 (1241.7) -> 1182.2 (1203.2) MB, 1145.3 / 0.0 ms  (average mu = 0.248, current mu = 0.000) last resort GC in old space requested
[8748:0x102641000]    19877 ms: Mark-sweep 1182.2 (1203.2) -> 1182.2 (1203.2) MB, 920.2 / 0.0 ms  (average mu = 0.146, current mu = 0.000) last resort GC in old space requested


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x3dddbe65be3d]
    1: StubFrame [pc: 0x3dddbe64b476]
Security context: 0x31960631e6e1 <JSObject>
    2: replace [0x3196063105e1](this=0x319706b02201 <Very long string[19409793]>,0x31964e437719 <JSRegExp <String[9]: (\\*)(\?)>>,0x31964e437751 <JSFunction (sfi = 0x3196d83747d1)>)
    3: query [0x3196d83070d9] [/Users/grace/node_modules/knex/lib/runner.js:~128] [pc=0x3dddbe6ea4fc](this=0x3196737add89 <Runner map = 0x31...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 0x10003b125 node::Abort() [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 2: 0x10003b32f node::OnFatalError(char const*, char const*) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 3: 0x1001a8e85 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 4: 0x1005742a2 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 5: 0x10057d7a4 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 6: 0x10054caa6 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 7: 0x10080b626 v8::internal::Runtime_RegExpExecMultiple(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/grace/.nvm/versions/node/v10.15.0/bin/node]
 8: 0x3dddbe65be3d 
Abort trap: 6

[8748:0x102641000]18957毫秒:标记扫描1182.2(1241.7)->1182.2(1203.2)MB,1145.3/0.0毫秒(平均mu=0.248,当前mu=0.000)请求的旧空间中的最后手段GC
[8748:0x102641000]19877毫秒:标记扫描1182.2(1203.2)->1182.2(1203.2)MB,920.2/0.0毫秒(平均mu=0.146,当前mu=0.000)请求的旧空间中的最后手段GC
==JS堆栈跟踪=========================================
0:ExitFrame[pc:0x3dddbe65be3d]
1:StubFrame[pc:0x3dddbe64b476]
安全上下文:0x31960631e6e1
2:替换[0x3196063105e1](此项=0x319706b02201、0x31964e437719、0x31964e437751)
3:query[0x3196d83070d9][/Users/grace/node_modules/knex/lib/runner.js:~128][pc=0x3ddbe6ea4fc](this=0x3196737add89如果要插入其他表中的数据,或者要循环并处理具有限制和偏移量的数据,则应使用它,如果不确定它有多大,请避免在节点js中拉取整个表

仅供参考,要解决js堆内存不足的问题