Adding a new database will require the following to be added:
- A new Manager subclass (like the DBManager classes in
exec_engine/db_manager.py
)- Needs to include logic for supporting transactional commits/rollbacks regardless of the database type (Ensure reversibility for all database types)
- Implementation should be similar to
MySQLManager
orSQLiteManager
- Be able to format a user prompt with additional database specific info (like schema) to inform the LLM how to generate an accurate API call.
- [Optional] If dry-running is wanted:
- Add a new folder inside
docker/
much likedocker/mysql_docker
- Make sure the dockerfile sets up the environment for the database deployment
- Create a copy of the database and copy it to the docker container
- Create a reversibility script for dry-running like
exec_engine/db_reversion_test.txt
- This script is written in txt since it will be passed into the docker environment and run with
python_executor.py
- This script is written in txt since it will be passed into the docker environment and run with
- Add a new folder inside