# Changelog

### :tools: Additional Database Options

There are two new options you can utilize when initializing your database. The first available option is the **driver**. Currently, you can either use SQLite (default) or MySQL. The second new option is **filePath**, which allows you to specify the file you would like to manipulate (default: json.sqlite)

### SQLite

```javascript
// SQLite (default) w/ filePath (optional)
const { QuickDB } = require('quick.db');
const db = new QuickDB({ filePath: 'source/to/path/test.sqlite' });
```

### MySQL

```javascript
// MySQL
const { QuickDB, MySQLDriver } = require('quick.db');
(async () => {
    const mysql = new MySQLDriver({
        host:     'localhost',
        user:     'me',
        password: 'secret',
        database: 'my_db'
    });
    
    await mysql.connect();
    // It is important to connect MySQL
    
    const db = new QuickDB({ driver: mysql });
})();
```

### Added functions

* pull - Remove an element from an array (Reverse of push)
* sub - The subtract function has been renamed to sub&#x20;
* deleteAll - Delete everything in the database (or the table)

## The use of async/await

Now quick.db uses async and await for all of it's methods


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://plexidev.gitbook.io/quickdb/overview/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
