dbgate/README.md

118 lines
6.2 KiB
Markdown
Raw Normal View History

2021-02-14 20:15:59 +00:00
[![NPM version](https://img.shields.io/npm/v/dbgate.svg)](https://www.npmjs.com/package/dbgate)
2021-05-05 18:05:09 +00:00
![GitHub All Releases](https://img.shields.io/github/downloads/dbgate/dbgate/total)
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-01-21 06:58:19 +00:00
# DbGate - database administration tool
2019-12-24 16:48:25 +00:00
2021-04-15 18:16:52 +00:00
DbGate modern, fast and easy to use database manager
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-02-14 20:18:35 +00:00
* Download application for Windows, Linux or Mac from [dbgate.org](https://dbgate.org/download/)
2021-02-14 20:15:59 +00:00
* Run web version as [NPM package](https://www.npmjs.com/package/dbgate) or as [docker image](https://hub.docker.com/r/dbgate/dbgate)
2021-01-31 06:51:20 +00:00
2021-04-15 18:16:52 +00:00
Supported databases:
* MySQL
* PostgreSQL
* SQL Server
* MongoDB
2021-05-17 16:20:31 +00:00
* SQLite
* Amazon Redshift
* CockroachDB
2021-04-15 18:16:52 +00:00
2021-01-31 06:51:20 +00:00
![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
* 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-04-22 15:06:07 +00:00
* JSON view on MongoDB collections
2021-04-12 19:19:25 +00:00
* Explore tables, views, procedures, functions, MongoDB collections
2020-11-16 19:18:49 +00:00
* SQL editor, execute SQL script, SQL code formatter, SQL code completion, SQL join wizard
2021-04-12 19:19:25 +00:00
* Mongo JavaScript editor, execute Mongo script (with NodeJs syntax)
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
2021-03-22 17:33:53 +00:00
* Frontend - Svelte, socket.io
2020-01-21 06:58:19 +00:00
* 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
2021-04-15 18:16:52 +00:00
Basic set of plugins is part of DbGate git repository and is installed with app. Additional plugins pust be downloaded from NPM (this task is handled by DbGate)
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
2021-04-15 18:16:52 +00:00
If you want to make modifications in libraries or plugins, run library compiler in watch mode in the second 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-04-15 18:16:52 +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 and uses compiled version of plugins (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)
2021-02-14 20:15:59 +00:00
* [datalib](https://github.com/dbgate/dbgate/tree/master/packages/datalib) - TypeScript library for utility classes [![NPM version](https://img.shields.io/npm/v/dbgate-datalib.svg)](https://www.npmjs.com/package/dbgate-datalib)
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-02-14 20:15:59 +00:00
* [filterparser](https://github.com/dbgate/dbgate/tree/master/packages/filterparser) - TypeScript library for parsing data filter expressions using parsimmon [![NPM version](https://img.shields.io/npm/v/dbgate-filterparser.svg)](https://www.npmjs.com/package/dbgate-filterparser)
2021-01-31 06:51:20 +00:00
* [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)
2021-03-22 17:33:53 +00:00
* [web](https://github.com/dbgate/dbgate/tree/master/packages/web) - frontend in Svelte (JavaScript) [![NPM version](https://img.shields.io/npm/v/dbgate-web.svg)](https://www.npmjs.com/package/dbgate-web)
2021-01-31 06:51:20 +00:00
* [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