Skip to content

app-generator/devtool-db-introspection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database Introspection Tool

Open-Source developers tool that provides simple helpers for legacy databases introspection. Crafted on top of Python and Peewee.


Features

  • Peewee DB Reflection
  • Supported DB:
    • SQLite, MySql, PostgreSQL
  • DbWrapper Class:
    • print_all_models() - returns all tables
    • print_db_model - print table definition
    • dump_tables() - Dump SQL definitions (all tables)
    • dump_tables_data() - Dump database content (all tables)

Support via Github (issues tracker) and Discord.


DB Migration Tool - Open-Source Developer Tool provided by AppSeed.


✨ Quick Start

Clone Sources (this repo)

$ git clone https://github.com/app-generator/devtool-db.git
$ cd devtool-db

Install Modules using a Virtual Environment

$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt

Or for Windows-based Systems

$ virtualenv env
$ .\env\Scripts\activate
$
$ # Install modules - SQLite Database
$ pip3 install -r requirements.txt

Launch the Python console

$ python
>>> 
>>> from util import *                                  # import helpers      
>>>                    
>>> db_sqlite = DbWrapper()                             # invoke the Base Class  
>>> db_sqlite.driver = COMMON.DB_SQLITE                 # set driver
>>> db_sqlite.db_name = 'samples/api-django.sqlite3'    # set db name
>>> db_sqlite.connect()                                 # connect 
True 
>>> db_sqlite.load_models()                             # load DB SChema 
True
>>> db_sqlite.dump_tables()                             # Dump tables definitions 
True
>>> db_sqlite.dump_tables_data()                        # Dump data
 > Dump data for [api_user_user]
 > Dump data for [api_authentication_activesession]
 > Dump data for [auth_group]
 > Dump data for [api_user_user_groups]
 > Dump data for [django_content_type]
 > Dump data for [auth_permission]
 > Dump data for [api_user_user_user_permissions]
 > Dump data for [auth_group_permissions]
 > Dump data for [django_admin_log]
 > Dump data for [django_migrations]
 > Dump data for [django_session]
True
>>> db_sqlite.reset()                                     # reset the Class data  
>>>

At this point, the tables and data are saved in the output directory.

$ cd output ; ls 
$ SQLITE.sql
$ SQLITE_api_user_user.sql
$ SQLITE_auth_permission.sql
$ SQLITE_django_content_type.sql
$ SQLITE_django_migrations.sql


Database Introspection Tool - Provided by AppSeed App Generator.