Skip to content

Using Databases

You can use any database you wish with PyStark, but we have provided a simple default setup for some databases, such as PostgreSQL and Redis, to make them even easier to use. By following this guide, you will have a basic understanding of how to use them.

PostgreSQL (using sqlalchemy)

  • Database URL - You need to add DATABASE_URL to .env. If you are using Heroku boilerplate, leave it to Heroku and pystark. Otherwise, you can get a Database URL from ElephantSQL

  • Creating Tables - You need to create all the tables with all columns you need. In Python, using Classes.

Below is a code example for a table named users with 3 columns named user_id, name, and aim:

# Import class 'Database' from pystark
from pystark.database.sql import Database
# Import basic sqlalchemy classes
from sqlalchemy import Column, Integer, String

# create a database instance
db = Database()

# Every class should inherit from 'db.base'
class Users(db.base):
    __tablename__ = "users"
    __table_args__ = {'extend_existing': True}
    user_id = Column(Integer, primary_key=True)  # sql primary key (pk)
    name = Column(String)
    aim = Column(String)

    def __init__(self, user_id, name, aim=None):
        self.user_id = user_id = name
        self.aim = aim

# Create Table

Using Telegram as a Database

You can use Telegram as a Database, thanks to this project.

But How? - Read Documentation Here


TinyDB is a simple database which does not require a Database URL and is very simple. If you are a beginner, it is for you. Read How to Use It.

Redis (using redis-py)

  • Variables - You need to set REDIS_URL (public endpoint) and REDIS_PASSWORD by creating a database at

  • Setting and Getting key-value pairs
from pystark.database.redis_db import redis

redis.set('Agra', 'Taj Mahal')
b'Taj Mahal'


Coming soon.

Back to top