Skip to content

clach04/SQLshite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

-- coding: utf-8 --

SQLshite

πŸ—„πŸ’© A terrible SQLite Web UI

Home page https://github.com/clach04/SQLshite/

Not ready for general consumption, right now only browsing/viewing SQLite3 databases/tables is supported (and then barely).

Table of contents generated with markdown-toc

Overview

Aim is a simple UI, that works on mobile for quick search. Focused on single table work, rather than fk/pk relationship display. this is mostly implemented, without write (INSERT, DELETE, UPDATE) support (and with UI/UX blemishes). Use cases, less than 100k rows, that would have previously been suitable for use with tools like Pilot-DB, MobileDB, JFile, HanDBase, Easy Database for Android, etc.

Primary aim:

Alternatives

Local

Web

Getting Started

From a source code checkout

python -m pip install -r requirements.txt # TODO requirements_optional.txt #python -m pip install -e . 

Usage

python -m sqlshite.web.wsgi python -m sqlshite.web.wsgi config.json 

Where config.json contains:

{	"databases": {	"memory": ":memory:",	"mydb": "mydb.sqlite3"	} } 

Then open:

Design

URLs

That have been implemented

http://localhost/ - browse databases http://localhost/d - browse databases http://localhost/d/DATABASE_NAME - browse tables http://localhost/d/DATABASE_NAME/sql - issue SQL queries http://localhost/d/DATABASE_NAME/rescan - rescan metadata http://localhost/d/DATABASE_NAME/TABLE_NAME?q=SEARCH_TERM - quick search the first string column with automatic (pre and post) wild card http://localhost/d/DATABASE_NAME/TABLE_NAME/jsonform.json - schema in jsonform - format http://localhost/d/DATABASE_NAME/TABLE_NAME/rows - view (TODO cleanup and maybe edit for desktop view) rows in table http://localhost/d/DATABASE_NAME/TABLE_NAME/add - add TODO actually INSERT into table http://localhost/d/DATABASE_NAME/TABLE_NAME/rowid - currently dumps schema and value http://localhost/d/DATABASE_NAME/TABLE_NAME/view/rowid - view http://localhost/d/DATABASE_NAME/TABLE_NAME/view/rowid/view.json - jsonform with schema and data only 

URLs TODO / TBD

http://localhost/d/DATABASE_NAME/TABLE_NAME - browse table (rows)? 

TBD

http://localhost/d/DATABASE_NAME/TABLE_NAME/schema.json - schema in jsonform - format http://localhost/d/DATABASE_NAME/TABLE_NAME?rowid=A - view? where rowid is sqlite specific rowid? Where PRIMARY_KEY is not rowid (but it could be...) http://localhost/d/DATABASE_NAME/TABLE_NAME/PRIMARY_KEY - edit/view? http://localhost/d/DATABASE_NAME/TABLE_NAME/row/PRIMARY_KEY - view? http://localhost/d/DATABASE_NAME/TABLE_NAME/view/PRIMARY_KEY - view? http://localhost/d/DATABASE_NAME/TABLE_NAME/edit/PRIMARY_KEY - edit existing? 

need to use hidden field for PK (compound pk?) in case pk is updated. Potentially use readonly (especially for view) http://localhost/d/DATABASE_NAME/TABLE_NAME/edit/PRIMARY_KEY/jsonform.json - schema+data in jsonform - format with data

Questions

  • Datatype support. date/datetime
  • how to handle add and edit errors, to avoid data loss:
    • from database
    • network?
    • temp store in local storeage until get confirmation back?

Datatypes

SQL Python TIMESTAMP DateTime bool/boolean bool varchar string string string int integer real float 

TODO consider Decimal support. TODO consider datetime as a mapping.

Packages

No packages published