ConstraintError: Ключ уже существует в хранилище объектов.в учебном методе - PullRequest
0 голосов
/ 05 февраля 2019

Я пытался впервые создать хранилище объектов, но эта ошибка сбрасывается.

  let IndxDb: IDBFactory;
  let idbOpenDBRequest: IDBOpenDBRequest;
  // set the version of database
  idbOpenDBRequest = this.IndxDb.open(this.dbName, 1);
  idbOpenDBRequest.onupgradeneeded = (e) => {
    const db = e.target.result;
    db.onerror = (err) => {
      console.error(err);
      throw err;
    };
    const corredoresObjectStore = db.createObjectStore('corredor', {keyPath: 'idCorredor'});
    corredoresObjectStore.createIndex('loginCorredor', 'loginCorredor');
    corredoresObjectStore.createIndex('categoriaCorredor', 'categoriaCorredor');
    corredoresObjectStore.createIndex('sexoCorredor', 'sexoCorredor');
    corredoresObjectStore.createIndex('nomeCorredor', 'nomeCorredor');
    corredoresObjectStore.createIndex('CPFCorredor', 'CPFCorredor');
    corredoresObjectStore.createIndex('numCorredor', 'numCorredor');

    const clubeObjectStore = db.createObjectStore('clube', {keyPath: 'idClube'});
    clubeObjectStore.createIndex('loginClube', 'loginClube', {unique: true});

    const eventoObjectStore = db.createObjectStore('evento', {keyPath: 'idEvento'});
    eventoObjectStore.createIndex('idClube', 'idClube');

    const participacaoObjectStore = db.createObjectStore('participacao', {keyPath: 'idParticipacao'});
    participacaoObjectStore.createIndex('idEvento', 'idEvento');
    participacaoObjectStore.createIndex('idCorredor', 'idCorredor');
  };
  idbOpenDBRequest.onsuccess = () => {
    this.db = idbOpenDBRequest.result;
  };
  idbOpenDBRequest.onerror = () => {
    console.error('erro');
    subscriber.error();
  };

Ошибка возникает, когда транзакция создает последнее хранилище объектов (Participacao).

...