#260·lovefield

Error when trying to use persistentIndex(true)

Author: danbrittCreated Jan 15, 2020Updated Oct 1, 2020

Version: 2.1.12

Using persistentIndex(true) causes an error when calling schemaBuilder.connect(), making it unusable since you can't get past that step.

Code to reproduce: (link to jsfiddle: https://jsfiddle.net/ouwgrdtn/3/)

javascript
/**
* Running this the first time will create the database and insert a record, 
* but there will be no data in the pk index table
*
* Running this the second time gives an error when calling connect()
*
* If you change it to persistentIndex(false), it works fine.
*/
var sb = lf.schema.create('test_db', 1);

sb.createTable('Asset')
  .addColumn('id', lf.Type.NUMBER)
  .addColumn('asset', lf.Type.STRING)
  .addPrimaryKey(['id'])
  .persistentIndex(true);
 console.log('schema builder created');

// Schema is defined, now connect to the database instance.
sb.connect().then(async function(testDb) {
  console.log('connect successful');
  let localTable = testDb.getSchema().table('Asset');
  await testDb
    .insertOrReplace()
    .into(localTable)
    .values([
    localTable.createRow({ id: Date.now(), asset: 'test' })
  ])
    .exec();
  console.log('insert successful');
});

Screenshot of console errors: image