Convert Figma logo to code with AI

dbgate logodbgate

Database manager for MySQL, PostgreSQL, SQL Server, MongoDB, SQLite and others. Runs under Windows, Linux, Mac or as web application

6,173
361
6,173
401

Top Related Projects

Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.

44,146

Free universal database tool and SQL client

A simple and lightweight SQL client desktop with cross database and platform support.

A lightweight client for managing MariaDB, MySQL, SQL Server, PostgreSQL, SQLite, Interbase and Firebird, written in Delphi

MySQL/MariaDB database management for macOS

A web interface for MySQL and MariaDB

Quick Overview

DBGate is an open-source, cross-platform database tool that supports various database systems including MySQL, PostgreSQL, SQL Server, MongoDB, and more. It provides a user-friendly interface for database management, querying, and data visualization, making it suitable for both developers and database administrators.

Pros

  • Cross-platform compatibility (Windows, Linux, macOS)
  • Supports multiple database systems
  • User-friendly interface with modern design
  • Free and open-source

Cons

  • Limited advanced features compared to some commercial database tools
  • May have a steeper learning curve for beginners
  • Documentation could be more comprehensive
  • Performance may be slower than native database tools for large datasets

Getting Started

To get started with DBGate:

  1. Download the appropriate version for your operating system from the official GitHub releases page.
  2. Install the application following the instructions for your OS.
  3. Launch DBGate and click on "Add connection" to set up a new database connection.
  4. Choose your database type, enter the connection details, and click "Test" to verify the connection.
  5. Once connected, you can start exploring your database, writing queries, and managing data through the intuitive interface.

Note: DBGate is primarily a GUI tool, so there's no code library to import or use directly in your projects. Instead, it's a standalone application for interacting with databases.

Competitor Comparisons

Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.

Pros of Beekeeper Studio

  • More polished and user-friendly interface
  • Better support for SSH tunneling
  • Offers a paid "Ultimate" version with advanced features

Cons of Beekeeper Studio

  • Supports fewer database types compared to DBGate
  • Less extensive query builder functionality
  • Lacks some advanced features like data modeling and schema comparison

Code Comparison

Beekeeper Studio (Vue.js component):

<template>
  <div class="query-editor">
    <MonacoEditor
      v-model="query"
      language="sql"
      @change="onChange"
    />
  </div>
</template>

DBGate (React component):

<SqlEditor
  value={sql}
  onChange={handleChange}
  engine={currentDatabase && currentDatabase.engine}
/>

Both projects use modern web technologies for their user interfaces, with Beekeeper Studio utilizing Vue.js and DBGate using React. The code snippets show similar approaches to implementing SQL editors, though DBGate's component appears to have more built-in functionality specific to database engines.

44,146

Free universal database tool and SQL client

Pros of DBeaver

  • More mature and feature-rich database management tool
  • Supports a wider range of database systems and cloud platforms
  • Offers advanced features like data modeling and SQL execution plans

Cons of DBeaver

  • Heavier resource consumption, especially for large datasets
  • Steeper learning curve due to its extensive feature set
  • Slower startup time compared to lighter alternatives

Code Comparison

DBeaver (Java):

public class SQLEditorInput extends AbstractDataSourceEditorInput<DBSObject> {
    private final SQLScriptElement script;
    private final boolean newScript;
    private final String scriptPath;
}

DBGate (JavaScript):

export default function SqlEditor({
  value,
  engine,
  onChange,
  tabVisible,
  onKeyDown,
  editorRef,
}) {
  // ...
}

While both projects aim to provide database management capabilities, DBeaver is a more comprehensive solution written in Java, offering a wider range of features and database support. DBGate, on the other hand, is a lightweight, web-based alternative built with JavaScript, focusing on simplicity and ease of use. The code snippets highlight the different programming languages and approaches used in each project.

A simple and lightweight SQL client desktop with cross database and platform support.

Pros of Sqlectron

  • Lightweight and focused on essential SQL client features
  • Cross-platform support (Windows, macOS, Linux)
  • Simple and intuitive user interface

Cons of Sqlectron

  • Limited database support compared to DBGate
  • Fewer advanced features and customization options
  • Less frequent updates and smaller community

Code Comparison

Sqlectron (React component for query execution):

<QueryResult
  onCopyToClipboard={this.onCopyToClipboard.bind(this)}
  resultItemsPerPage={query.resultItemsPerPage}
  copied={this.state.copied}
  query={query}
  widthOffset={this.state.sideBarWidth}
/>

DBGate (React component for query execution):

<QueryResult
  conid={conid}
  database={database}
  display={display}
  executeNumber={executeNumber}
  grider={grider}
  isRunning={isRunning}
  runningSql={runningSql}
/>

Both projects use React for their user interfaces, but DBGate's component structure appears more modular and feature-rich, reflecting its broader functionality and database support.

DBGate offers a more comprehensive database management solution with support for multiple database types, advanced features like data modeling and schema comparison, and a more active development community. Sqlectron, while more lightweight, may be suitable for users seeking a simpler SQL client with basic functionality.

A lightweight client for managing MariaDB, MySQL, SQL Server, PostgreSQL, SQLite, Interbase and Firebird, written in Delphi

Pros of HeidiSQL

  • Native Windows application, offering better performance and integration with the OS
  • Supports a wider range of database systems, including MySQL, MariaDB, PostgreSQL, and Microsoft SQL Server
  • More mature project with a longer development history and established user base

Cons of HeidiSQL

  • Limited to Windows platform, lacking cross-platform support
  • Less modern user interface compared to DbGate
  • Slower development cycle and fewer frequent updates

Code Comparison

HeidiSQL (Delphi):

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Caption := APPNAME + ' ' + AppVersion;
  SetWindowSizeGrip(Handle, True);
end

DbGate (JavaScript):

export default function MainWindow() {
  return (
    <AppObjectProvider>
      <ScreenSizeProvider>
        <MainWindowCore />
      </ScreenSizeProvider>
    </AppObjectProvider>
  );
}

HeidiSQL is written in Delphi, a Pascal-based language, while DbGate uses JavaScript with React for its user interface. This difference in technology stack impacts the development process, extensibility, and potential for cross-platform support.

MySQL/MariaDB database management for macOS

Pros of Sequelpro

  • Native macOS application, providing a smooth and integrated user experience
  • Lightweight and fast, with a clean and intuitive interface
  • Focused specifically on MySQL databases, offering optimized features for this platform

Cons of Sequelpro

  • Limited to macOS, not available for Windows or Linux users
  • Only supports MySQL databases, lacking versatility for other database types
  • Development has slowed down, with less frequent updates compared to DBGate

Code Comparison

Sequelpro (Objective-C):

- (void)executeQueryInNewTab:(NSString *)query
{
    SPQueryController *queryController = [self makeQueryControllerAndAddToTabs];
    [queryController doPerformQueryWithHistory:query];
}

DBGate (JavaScript):

export function runCommand(props) {
  const { connection, database, sql } = props;
  const subprocess = runCommandItem(connection, sql);
  return subprocess;
}

While both projects handle query execution, Sequelpro uses Objective-C for its native macOS application, whereas DBGate utilizes JavaScript, reflecting its cross-platform nature and web-based architecture.

A web interface for MySQL and MariaDB

Pros of phpMyAdmin

  • Widely adopted and well-established tool with a large user base
  • Extensive documentation and community support
  • Specifically designed for MySQL and MariaDB databases

Cons of phpMyAdmin

  • Limited to MySQL and MariaDB databases
  • User interface can be overwhelming for beginners
  • Requires a web server with PHP to run

Code Comparison

phpMyAdmin (config.inc.php):

$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['auth_type'] = 'cookie';

DbGate (connection.json):

{
  "server": "localhost",
  "user": "root",
  "password": "",
  "engine": "mysql"
}

DbGate is a more modern, cross-platform database management tool that supports multiple database engines, including MySQL, PostgreSQL, and SQLite. It offers a user-friendly interface and doesn't require a web server to run. However, it may have a smaller community and less extensive documentation compared to phpMyAdmin.

Both tools provide similar functionality for managing databases, but DbGate's broader database support and standalone nature make it more versatile for users working with multiple database types or without access to a web server.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

NPM version GitHub All Releases dbgate dbgate styled with prettier

DbGate - (no)SQL database client

DbGate is cross-platform database manager. It's designed to be simple to use and effective, when working with more databases simultaneously. But there are also many advanced features like schema compare, visual query designer, chart visualisation or batch export and import.

DbGate is licensed under GPL-3.0 license and is free to use for any purpose.

Supported databases

  • MySQL
  • PostgreSQL
  • SQL Server
  • Oracle
  • MongoDB
  • Redis
  • SQLite
  • Amazon Redshift (Premium)
  • CockroachDB
  • MariaDB
  • CosmosDB (Premium)
  • ClickHouse
  • Apache Cassandra
  • libSQL/Turso (Premium)
  • DuckDB
  • Firebird

Features

  • Browse table data with many filtering options, Excel-like filters, multi-value filters
  • Table data editing, with SQL change script preview
  • Edit table schema, indexes, primary and foreign keys
  • Compare and synchronize database structure
  • ER diagram
  • Light and dark theme, next themes available as plugins from github community
  • Huge support for work with related data - master/detail views, foreign key lookups, expanding columns from related tables in flat data view
  • Query designer - visual SQL query builder without writing SQL code. Complex conditions like WHERE NOT EXISTS.
  • Query perspectives – innovative nested table view over complex relational data, something like query designer on MongoDB databases
  • Form view for comfortable work with tables with many columns
  • JSON view on MongoDB collections
  • Explore tables, views, procedures, functions, MongoDB collections
  • SQL editor
    • execute SQL script
    • SQL code formatter
    • SQL code completion
    • Add SQL LEFT/INNER/RIGHT join utility
  • Mongo JavaScript editor, execute Mongo script (with NodeJs syntax)
  • Redis tree view, generate script from keys, run Redis script
  • 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, NDJSON, XML, DBF
  • Archives - backup your data in NDJSON files on local filesystem (or on DbGate server, when using web application)
  • NDJSON data viewer and editor - browse NDJSON data, edit data and structure directly on NDJSON files. Works also for big NDSON files
  • Charts, export chart to HTML page
  • Show GEO data on map, export map to HTML page
  • For detailed info, how to run DbGate in docker container, visit docker hub
  • Extensible plugin architecture

How to contribute

Any contributions are welcome. If you want to contribute without coding, consider following:

  • Tell your friends about DbGate or share on social networks - when more people will use DbGate, it will grow to be better
  • Purchase a DbGate Premium liocense
  • Write review on Slant.co or G2
  • Create issue, if you find problem in app, or you have idea to new feature. If issue already exists, you could leave comment on it, to prioritise most wanted issues
  • Create some tutorial video on youtube
  • Become a backer on GitHub sponsors or Open collective
  • Add a SQL script to Public Knowledge Base
  • Where a small coding is acceptable for you, you could create plugin. Plugins for new themes can be created actually without JS coding

Thank you!

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 )
  • Many data browsing functions based using foreign keys - master/detail, expand columns, expandable form view

Design goals

  • Application simplicity - DbGate takes the best and only the best from old DbGate, DatAdmin, DbMouse and SQL Database Studio
  • Minimal dependencies
    • Frontend - Svelte
    • Backend - NodeJs, ExpressJs, database connection drivers
    • JavaScript + TypeScript
    • App - electron
  • Platform independent - runs as web application in single docker container on server, or as application using Electron platform on Linux, Windows and Mac

How to run development environment

Simple variant - runs WEB application:

yarn
yarn start

If you want more control, run WEB application:

yarn # install NPM packages

And than run following 3 commands concurrently in 3 terminals:

yarn start:api # run API on port 3000
yarn start:web # run web on port 5001
yarn lib # watch typescript libraries and plugins modifications

This runs API on port 3000 and web application on port 5001
Open http://localhost:5001 in your browser

If you want to run electron app:

yarn # install NPM packages
cd app
yarn # install NPM packages for electron

And than run following 3 commands concurrently in 3 terminals:

yarn start:web # run web on port 5001 (only static JS and HTML files)
yarn lib # watch typescript libraries and plugins modifications
yarn start:app # run electron app

How to run built electron app locally

This mode is very similar to production run of electron app. Electron doesn't use localhost:5001.

cd app
yarn
yarn
yarn build:app:local
yarn start:app:local

How to create plugin

Creating plugin is described in documentation

But it is very simple:

npm install -g yo # install yeoman
npm install -g generator-dbgate # install dbgate generator
cd dbgate-plugin-my-new-plugin # this directory is created by wizard, edit, what you need to change
yarn plugin # this compiles plugin and copies it into existing DbGate installation

After restarting DbGate, you could use your new plugin from DbGate.

Logging

DbGate uses pinomin logger. So by default, it produces JSON log messages into console and log files. If you want to see formatted logs, please use pino-pretty log formatter.

NPM DownloadsLast 30 Days