files/en-us/web/api/idbfactory/open/index.md
{{APIRef("IndexedDB")}} {{AvailableInWorkers}}
The open() method of the {{domxref("IDBFactory")}} interface requests opening a connection to a database.
The method returns an {{domxref("IDBOpenDBRequest")}} object immediately, and performs the open operation asynchronously.
If the operation is successful, a success event is fired on the request object that is returned from this method, with its result attribute set to the new {{domxref("IDBDatabase")}} object for the connection.
May trigger upgradeneeded, blocked or versionchange events.
open(name)
open(name, version)
name
version {{optional_inline}}
1.An {{domxref("IDBOpenDBRequest")}} object on which subsequent events related to this request are fired.
If the operation is successful, the value of the request's {{domxref("IDBRequest.result", "result")}} property is an {{domxref("IDBDatabase")}} object representing the connection to the database.
version is not a number greater than zero.Example of calling open with the current specification's version parameter:
const request = window.indexedDB.open("toDoList", 4);
In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (View the example live).
const note = document.querySelector("ul");
// Let us open version 4 of our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
// these two event handlers act on the database being opened
// successfully, or not
DBOpenRequest.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Error loading database.";
};
DBOpenRequest.onsuccess = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Database initialized.";
// store the result of opening the database in the db
// variable. This is used a lot later on, for opening
// transactions and suchlike.
db = DBOpenRequest.result;
};
{{Specifications}}
{{Compat}}