2021-02-04 15:23:11 +00:00
[![dbgate ](https://snapcraft.io/dbgate/badge.svg )](https://snapcraft.io/dbgate)
[![dbgate ](https://snapcraft.io/dbgate/trending.svg?name=0 )](https://snapcraft.io/dbgate)
2020-01-29 19:58:42 +00:00
[![styled with prettier ](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg )](https://github.com/prettier/prettier)
2020-02-01 17:00:44 +00:00
[![Donate ](https://img.shields.io/badge/donate-paypal-blue.svg )](https://paypal.me/JanProchazkaCz/30eur)
2020-01-29 19:58:42 +00:00
2020-01-21 06:58:19 +00:00
# DbGate - database administration tool
2019-12-24 16:48:25 +00:00
2021-01-31 06:51:20 +00:00
DbGate is fast and easy to use database manager. Works with MySQL, PostgreSQL and SQL Server.
2020-05-18 18:52:52 +00:00
2021-01-31 07:00:37 +00:00
* Try it online - [demo.dbgate.org ](https://demo.dbgate.org ) - online demo application
2021-01-31 06:51:20 +00:00
* Download it from [dbgate.org ](https://dbgate.org )
![Screenshot ](https://raw.githubusercontent.com/dbgate/dbgate/master/screenshot.png )
2019-12-24 16:48:25 +00:00
2020-11-16 19:18:49 +00:00
## Features
2021-01-31 06:51:20 +00:00
* Connect to Microsoft SQL Server, Postgre SQL, MySQL
* Table data editing, with SQL change script preview
2020-05-18 18:52:52 +00:00
* Master/detail views
2021-01-23 08:32:53 +00:00
* Query designer
* Form view for comfortable work with tables with many columns
2021-01-31 06:51:20 +00:00
* Explore tables, views, procedures, functions
2020-11-16 19:18:49 +00:00
* SQL editor, execute SQL script, SQL code formatter, SQL code completion, SQL join wizard
2020-05-18 18:52:52 +00:00
* Runs as application for Windows, Linux and Mac. Or in Docker container on server and in web Browser on client.
2020-11-16 19:18:49 +00:00
* Import, export from/to CSV, Excel, JSON
* 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)
2020-11-16 20:35:18 +00:00
* Light and dark theme
2021-01-31 06:51:20 +00:00
* Charts
2020-05-18 18:52:52 +00:00
* For detailed info, how to run DbGate in docker container, visit [docker hub ](https://hub.docker.com/r/dbgate/dbgate )
2020-11-30 20:18:56 +00:00
* Extensible plugin architecture
2020-05-18 18:52:52 +00:00
2021-01-31 06:51:20 +00:00
## 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)
2019-12-24 16:48:25 +00:00
2020-01-21 06:58:19 +00:00
## Design goals
2020-11-16 19:18:49 +00:00
* 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 ) .
* Minimal dependencies
2020-01-21 06:58:19 +00:00
* Frontend - React, styled-components, socket.io
* Backend - NodeJs, ExpressJs, socket.io, database connection drivers
2020-03-13 21:42:09 +00:00
* JavaScript + TypeScript
2020-04-13 19:04:24 +00:00
* App - electron
* There is plan to incorporate SQLite to support work with local datasets
2020-01-21 06:59:44 +00:00
* Platform independed - will run as web application in single docker container on server, or as application using Electron platform on Linux, Windows and Mac
2019-12-24 16:48:25 +00:00
2020-11-30 20:18:56 +00:00
## Plugins
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 ).
2021-01-31 06:51:20 +00:00
Visit [dbgate generator homepage ](https://github.com/dbgate/generator-dbgate ) to see, how to create your own plugin.
2020-11-30 20:18:56 +00:00
Currently following extensions can be implemented using plugins:
- File format parsers/writers
- Database engine connectors
2020-01-21 06:58:19 +00:00
## How to run development environment
2019-12-24 16:48:25 +00:00
2020-01-21 06:58:19 +00:00
```sh
yarn
yarn start
```
2019-12-24 16:48:25 +00:00
2020-05-18 18:52:52 +00:00
If you want to make modifications in TypeScript packages, run TypeScript compiler in watch mode in seconds terminal:
2020-01-21 06:58:19 +00:00
```sh
2020-03-13 21:42:09 +00:00
yarn lib
2020-01-21 06:58:19 +00:00
```
2019-12-24 16:48:25 +00:00
2020-01-21 06:58:19 +00:00
Open http://localhost:5000 in your browser
2020-03-13 21:42:09 +00:00
2021-01-31 06:51:20 +00:00
You could run electron app (requires running localhost:5000):
2020-04-13 18:53:44 +00:00
```sh
cd app
yarn
yarn start
```
## How to run built electron app locally
2021-01-31 06:51:20 +00:00
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)
2020-04-13 18:53:44 +00:00
```sh
cd app
yarn
```
```sh
yarn
yarn build:app:local
yarn start:app:local
```
2020-03-13 21:42:09 +00:00
## Packages
2020-11-17 17:48:26 +00:00
Some dbgate packages can be used also without DbGate. You can find them on [NPM repository ](https://www.npmjs.com/search?q=keywords:dbgate )
2021-01-31 06:51:20 +00:00
* [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/dbgate/dbgate/tree/master/packages/datalib ) - TypeScript library for utility classes
2021-01-31 07:00:37 +00:00
* [app ](https://github.com/dbgate/dbgate/tree/master/app ) - application (JavaScript) structure, creating specific queries (JavaScript)
2021-01-31 06:51:20 +00:00
* [filterparser ](https://github.com/dbgate/dbgate/tree/master/packages/filterparser ) - TypeScript library for parsing data filter expressions using parsimmon
* [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/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/dbgate/dbgate/tree/master/packages/web ) - frontend in React (JavaScript)
* [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)
2020-11-30 20:18:56 +00:00