Creating a custom database¶
Database classes are used to persist key/value pairs in a database. Values can be a complex object such as an array or a dictionary.
The class has three mandatory methods,
connect should initialise a connection to a database and store that connection object as a property of the database module instance.
put stores an object for a given key.
get returns an object for a given key. The object which is returned should be equivalent to the object which was stored.
delete deletes an object for a given key.
# We recommend you use the official library # for your database and import it here import databaselibrary # Import opsdroid dependencies from opsdroid.database import Database class MyDatabase(Database): async def connect(self): # Create connection object for database self.connection = await databaselibrary.connect() async def put(self, key, value): # Insert the object into the database response = await self.connection.insert(key, value) # Return a bool for whether the insert was successful return response.success async def get(self, key): # Get the object from the database and return it return await self.connection.find(key) async def delete(self, key): # Delete the object from the database and return it return await self.connection.delete(key)
If you need help or if you are unsure about something join our matrix channel and ask away! We are more than happy to help you.