This commit is contained in:
Jan Prochazka
2021-01-31 07:51:20 +01:00
parent 0a39a6829c
commit bd524d345a

View File

@@ -4,29 +4,35 @@
# DbGate - database administration tool # DbGate - database administration tool
DbGate is fast and efficient database administration tool. It is focused to work with data (filtering, editing, master/detail views etc.) DbGate is fast and easy to use database manager. Works with MySQL, PostgreSQL and SQL Server.
**Try it online** - https://demo.dbgate.org - online demo application * Try it online - https://demo.dbgate.org - online demo application
* Download it from [dbgate.org](https://dbgate.org)
![Screenshot](https://raw.githubusercontent.com/dbgate/dbgate/master/screenshot.png)
## Features ## Features
* Support for Microsoft SQL Server, Postgre SQL, MySQL * Connect to Microsoft SQL Server, Postgre SQL, MySQL
* Table data browsing - filtering, sorting, related columns using foreign keys * Table data editing, with SQL change script preview
* Master/detail views * Master/detail views
* Query designer * Query designer
* Form view for comfortable work with tables with many columns * Form view for comfortable work with tables with many columns
* Charts * Explore tables, views, procedures, functions
* Browsing objects - tables, views, procedures, functions
* Table data editing, with SQL change script preview
* SQL editor, execute SQL script, SQL code formatter, SQL code completion, SQL join wizard * SQL editor, execute SQL script, SQL code formatter, SQL code completion, SQL join wizard
* Runs as application for Windows, Linux and Mac. Or in Docker container on server and in web Browser on client. * Runs as application for Windows, Linux and Mac. Or in Docker container on server and in web Browser on client.
* Import, export from/to CSV, Excel, JSON * Import, export from/to CSV, Excel, JSON
* Free table editor - quick table data editing (cleanup data after import/before export, prototype tables etc.) * Free table editor - quick table data editing (cleanup data after import/before export, prototype tables etc.)
* Archives - backup your data in JSON files on local filesystem (or on DbGate server, when using web application) * Archives - backup your data in JSON files on local filesystem (or on DbGate server, when using web application)
* Light and dark theme * Light and dark theme
* Charts
* For detailed info, how to run DbGate in docker container, visit [docker hub](https://hub.docker.com/r/dbgate/dbgate) * For detailed info, how to run DbGate in docker container, visit [docker hub](https://hub.docker.com/r/dbgate/dbgate)
* Extensible plugin architecture * Extensible plugin architecture
![Screenshot](https://raw.githubusercontent.com/dbshell/dbgate/master/screenshot.png) ## Why is DbGate different
There are many database managers now, so why DbGate?
* Works everywhere - Windows, Linux, Mac, Web browser (+mobile web is planned), without compromises in features
* Based on standalone NPM packages, scripts can be run without DbGate (example - [CSV export](https://www.npmjs.com/package/dbgate-plugin-csv) )
* Many data browsing functions based using foreign keys - master/detail, expand columns, expandable form view (on screenshot above)
## Design goals ## Design goals
* Application simplicity - DbGate takes the best and only the best from old [DbGate](http://www.jenasoft.com/dbgate), [DatAdmin](http://www.jenasoft.com/datadmin) and [DbMouse](http://www.jenasoft.com/dbmouse) . * Application simplicity - DbGate takes the best and only the best from old [DbGate](http://www.jenasoft.com/dbgate), [DatAdmin](http://www.jenasoft.com/datadmin) and [DbMouse](http://www.jenasoft.com/dbmouse) .
@@ -41,36 +47,12 @@ DbGate is fast and efficient database administration tool. It is focused to work
## Plugins ## Plugins
Plugins are standard NPM packages published on [npmjs.com](https://www.npmjs.com). Plugins are standard NPM packages published on [npmjs.com](https://www.npmjs.com).
See all [existing DbGate plugins](https://www.npmjs.com/search?q=keywords:dbgateplugin). See all [existing DbGate plugins](https://www.npmjs.com/search?q=keywords:dbgateplugin).
Visit [dbgate generator homepage](https://github.com/dbshell/generator-dbgate) to see, how to create your own plugin. Visit [dbgate generator homepage](https://github.com/dbgate/generator-dbgate) to see, how to create your own plugin.
Currently following extensions can be implemented using plugins: Currently following extensions can be implemented using plugins:
- File format parsers/writers - File format parsers/writers
- Database engine connectors - Database engine connectors
## How Can I Contribute?
You're welcome to contribute to this project! Below are some ideas, how to contribute:
* Create plugins for new import/export formats or database engines
* Bug fixing
* Test Mac edition
* Create unit tests
* Whatever else
Any help is appreciated!
Feel free to report issues and open merge requests.
## Roadmap
| Feature | Complexity | Schedule |
|---|---|---|
| Table designer (structure editor) | big | february 2021 |
| Support for SQLite | big | 2021 |
| Filtering, sorting in free table editor | small | ??? |
| Query designer | medium | december 2020 - done |
| Using tedious driver instead of mssql | small | january 2021 - done |
| Filter SQL result sets | small | november 2020 - done |
## How to run development environment ## How to run development environment
```sh ```sh
@@ -85,7 +67,7 @@ yarn lib
Open http://localhost:5000 in your browser Open http://localhost:5000 in your browser
You could run electron app, using this server: You could run electron app (requires running localhost:5000):
```sh ```sh
cd app cd app
yarn yarn
@@ -93,7 +75,7 @@ yarn start
``` ```
## How to run built electron app locally ## How to run built electron app locally
This mode is very similar to production run of electron app. Electron app forks process with API on dynamically allocated port, works with compiled javascript files. This mode is very similar to production run of electron app. Electron app forks process with API on dynamically allocated port, works with compiled javascript files (doesn't use localhost:5000)
```sh ```sh
cd app cd app
@@ -109,13 +91,13 @@ yarn start:app:local
## Packages ## Packages
Some dbgate packages can be used also without DbGate. You can find them on [NPM repository](https://www.npmjs.com/search?q=keywords:dbgate) Some dbgate packages can be used also without DbGate. You can find them on [NPM repository](https://www.npmjs.com/search?q=keywords:dbgate)
* [api](https://github.com/dbshell/dbgate/tree/master/packages/api) - backend, Javascript, ExpressJS [![NPM version](https://img.shields.io/npm/v/dbgate-api.svg)](https://www.npmjs.com/package/dbgate-api) * [api](https://github.com/dbgate/dbgate/tree/master/packages/api) - backend, Javascript, ExpressJS [![NPM version](https://img.shields.io/npm/v/dbgate-api.svg)](https://www.npmjs.com/package/dbgate-api)
* [datalib](https://github.com/dbshell/dbgate/tree/master/packages/datalib) - TypeScript library for utility classes * [datalib](https://github.com/dbgate/dbgate/tree/master/packages/datalib) - TypeScript library for utility classes
* [app](https://github.com/dbshell/dbgate/tree/master/app) - application (JavaScript) * [app](https://github.com/dbgate/dbgate/tree/master/app) - application (JavaScript)
structure, creating specific queries (JavaScript) [![NPM version](https://img.shields.io/npm/v/dbgate-engines.svg)](https://www.npmjs.com/package/dbgate-engines) structure, creating specific queries (JavaScript) [![NPM version](https://img.shields.io/npm/v/dbgate-engines.svg)](https://www.npmjs.com/package/dbgate-engines)
* [filterparser](https://github.com/dbshell/dbgate/tree/master/packages/filterparser) - TypeScript library for parsing data filter expressions using parsimmon * [filterparser](https://github.com/dbgate/dbgate/tree/master/packages/filterparser) - TypeScript library for parsing data filter expressions using parsimmon
* [sqltree](https://github.com/dbshell/dbgate/tree/master/packages/sqltree) - JSON representation of SQL query, functions converting to SQL (TypeScript) [![NPM version](https://img.shields.io/npm/v/dbgate-sqltree.svg)](https://www.npmjs.com/package/dbgate-sqltree) * [sqltree](https://github.com/dbgate/dbgate/tree/master/packages/sqltree) - JSON representation of SQL query, functions converting to SQL (TypeScript) [![NPM version](https://img.shields.io/npm/v/dbgate-sqltree.svg)](https://www.npmjs.com/package/dbgate-sqltree)
* [types](https://github.com/dbshell/dbgate/tree/master/packages/types) - common TypeScript definitions [![NPM version](https://img.shields.io/npm/v/dbgate-types.svg)](https://www.npmjs.com/package/dbgate-types) * [types](https://github.com/dbgate/dbgate/tree/master/packages/types) - common TypeScript definitions [![NPM version](https://img.shields.io/npm/v/dbgate-types.svg)](https://www.npmjs.com/package/dbgate-types)
* [web](https://github.com/dbshell/dbgate/tree/master/packages/web) - frontend in React (JavaScript) * [web](https://github.com/dbgate/dbgate/tree/master/packages/web) - frontend in React (JavaScript)
* [tools](https://github.com/dbshell/dbgate/tree/master/packages/tools) - various tools [![NPM version](https://img.shields.io/npm/v/dbgate-tools.svg)](https://www.npmjs.com/package/dbgate-tools) * [tools](https://github.com/dbgate/dbgate/tree/master/packages/tools) - various tools [![NPM version](https://img.shields.io/npm/v/dbgate-tools.svg)](https://www.npmjs.com/package/dbgate-tools)