This is an implementation of a database as a service api written in python + django. It will try to follow some hypermedia concepts throughout the api calls.
Below: Screenshot from the admin user.
image 1: Listing databases and their summary information.
image 2: example database view and all its credentials.
DBaaS requires the following:
- python >= 2.7.5
- virtualenv >= 1.7.2
- virtualenvwrapper >= 3.5
- mysql server and client, version 5.5.x
- mongo client = 2.4 (used by the clone feature)
- redis (broker for async tasks with celery)
- and all packages in requirements.txt file (there is a shortcut to install them)
- Install Docker and Docker Compose
Go to the project path and these the following commands:
# create python container
$make dev_docker_build
$make dev_docker_setup [optional_mysql_dump_file_path]
$make dev_docker_migrate
$make dev_docker_run
mkvirtualenv dbaas
workon dbaas
Install the required python packages by:
make pip
Database setup for migrations:
-
Connect to the local database.
mysql -u root -p <GENERATED-PASSWORD>
-
Change root password to an empty string.
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
-
Create
dbaas
database.CREATE DATABASE dbaas;
Run migrations to mysql database:
make run_migrate
Install redis and start celery:
make run_celery
Create the tables structure (see the next item)
DBaaS uses south to maintain the migrations up-to-date. However, you can just run syncdb to create the table structures. There is a shortcut to help you with that, including some minimum operational data on DB.
make reset_data
make pip && make test
make docker_build && make test_with_docker
make run
In your browser open the URL: http://localhost:8000/admin/
To run celery locally use the following command:
cd {APP DIR}
make run_celery
This project is licensed under the BSD 3-Clause "New" or "Revised" License - read LICENSE file for details.