w3resource

Using SQLite with PocketBase for Modern Applications


SQLite with PocketBase: Modern Local Database for Web Apps

PocketBase is an open-source backend solution that simplifies app development by providing real-time database capabilities, authentication, and file storage. It uses SQLite as its core database engine, making it ideal for lightweight and high-performance applications. This guide explains how to leverage PocketBase with SQLite, complete with setup instructions, syntax, examples, and detailed explanations.


What is PocketBase?

PocketBase is a modern backend-as-a-service (BaaS) framework that offers:

    1. SQLite Database: As the primary data store.

    2. Authentication System: Built-in user management.

    3. Real-time Capabilities: Supports live data sync.

    4. Cross-Platform: Works seamlessly with web and mobile apps.


Setting Up PocketBase with SQLite

Step 1: Installation

Install PocketBase by downloading the binary file from the official website:

curl -o pocketbase.zip https://download.pocketbase.io/latest
unzip pocketbase.zip
chmod +x pocketbase
./pocketbase serve
  • curl: Downloads the PocketBase binary.
  • unzip: Extracts the contents.
  • serve: Starts the PocketBase server.

Step 2: Creating a New Collection

PocketBase organizes data into collections (similar to tables in SQLite).

    1. Open the PocketBase admin UI at http://127.0.0.1:8090/_/.

    2. Create a collection named users.

    3. Add fields such as name, email, and age.


Examples

Example 1: Inserting Data

Code:

// Import PocketBase JavaScript SDK
import PocketBase from 'pocketbase';

// Initialize PocketBase instance
const pb = new PocketBase('http://127.0.0.1:8090');

// Insert data into the "users" collection
const newUser = await pb.collection('users').create({
  name: 'John Doe',          // User's name
  email: '[email protected]', // User's email
  age: 25,                   // User's age
});
console.log('User created:', newUser);
  • PocketBase: Connects to the PocketBase server.
  • create: Adds a new record to the collection.

Example 2: Fetching Data

Code:

// Fetch all records from the "users" collection
const users = await pb.collection('users').getFullList();
console.log('Fetched users:', users);
  • getFullList: Retrieves all records from the specified collection.

Example 3: Updating Data

Code:

// Update a user's age
await pb.collection('users').update('user_id', {
  age: 30, // Update age to 30
});
console.log('User updated successfully');
  • update: Modifies a record identified by its unique ID.

Example 4: Deleting Data

Code:

// Delete a user by ID
await pb.collection('users').delete('user_id');
console.log('User deleted successfully');
  • delete:Removes the record from the database.

Explanation of Key Concepts

    1. Real-Time Updates

    PocketBase supports real-time subscriptions, allowing apps to receive live data changes.

    2. Offline Support

    Since PocketBase uses SQLite, it enables local database capabilities for offline functionality.

    3. Authentication

    Manage users and sessions seamlessly using PocketBase's authentication APIs.

    4. Cross-Platform Support

    PocketBase works in web, desktop, and mobile environments, ensuring wide compatibility.


Advantages of Using PocketBase with SQLite

    1. Simple Setup: Easy to configure and integrate.

    2. Real-Time Features: Ideal for dynamic applications.

    3. Lightweight and Fast: PocketBase leverages SQLite’s efficiency for small-scale apps.

    4. All-in-One Solution: Combines database, authentication, and file storage.

Practical Guides to SQLite Snippets and Examples.



Follow us on Facebook and Twitter for latest update.