Skip to content

flaviohenriqu/database-as-a-service

 
 

Repository files navigation

build status

Database as a Service (DBaaS)

Introduction

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 informations

Listing databases and their summary informations

image 2: example database view and all its credentials

alt text

Requirements

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)

Setup docker and docker-compose(optional)

Setup your local environment

mkvirtualenv dbaas
workon dbaas

Install the required python packages.

make pip

Database setup for migrations

  1. Connect to the local database.

     mysql -u root -p <GENERATED-PASSWORD>
    
  2. Change root password to an empty string.

     ALTER USER 'root'@'localhost' IDENTIFIED BY '';
    
  3. 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)

DB

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

Running all tests on local enviroment

make pip && make test

Running all test with docker( To run this the and docker-compose must be avaliable)

make docker_build && make test_with_docker

Running the project

make run

In your browser open the URL: http://localhost:8000/admin/

Running celery

To run celery locally use the following command

cd {APP DIR}
make run_celery

Documentation

About

Database as a service (Dbaas) that allows users to quickly and easily deploy and manage database instances using cloud infrastructure

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 88.2%
  • HTML 4.5%
  • Shell 3.2%
  • JavaScript 2.3%
  • CSS 1.6%
  • Makefile 0.1%
  • Other 0.1%