In the onupgradeneeded callback you can check the version. (e.target.result.oldversion). If
it is 0, the db didn’t exist.
Edit:
After some investigation. You can’t be 100% sure if a new db is created. One thing I am sure of is the fact that you can only work with an indexeddb if it has a version 1 or higher. I believe that a db can exist and have a version 0 (The only fact is you can’t work with it and the onupgradeneeded event will be called).
I have build my own indexeddbviewer. In that I open the indexeddb without version and if I come in to the onupgradeneeded event, that means the db doesn’t exist. In that case I call the abort so it doesn’t upgrade to a version 1. This is the way I check it.
var dbExists = true;
var request = window.indexeddb.open("db");
request.onupgradeneeded = function (e){
e.target.transaction.abort();
dbExists = false;
}
but as mentioned. It is possible that the db will continue to exist in that case, but the onupgradeneeded will always be called