Как выглядит ваша схема? (часть db.version (x) .stores ({...})?
Наиболее распространенным является наличие входящего первичного ключа, например:
db.version(1).stores({
table: 'id, idx1, idx2...'
});
Здесь id
- это первичный ключ.
db.table.add({id: 1, foo: 'bar'})
добавит объект с идентификатором 1.
db.table.add({id: 1, foo: 'bar2'})
Второй раз не удастся, потому что существует идентификатор 1.
db.table.put({id: 1, foo: 'bar2'})
обновит объект с идентификатором 1.
Так что вы действительно хотите сделать? Вы говорите, что хотите добавить новый объект с новым ключом. Если это так, я полагаю, ошибка в том, что вы даете тот же ключ во второй раз.
Вы также можете позволить идентификатору быть сгенерированным db
db.version(2).stores({
table: '++id, idx1, idx2...'
});
Тогда вам не нужно указывать идентификатор в вызовах add ():
db.table.add({foo: 'bar'})
добавит объект с идентификатором 1.
db.table.add({foo: 'barX'})
2-й раз добавит новый объект с идентификатором 2
- ...