Coder Social home page Coder Social logo

joe2hpimn / bytebase Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bytebase/bytebase

0.0 1.0 0.0 231.57 MB

Safe database schema change and version control tool for teams. Public demo: https://demo.bytebase.com. SQL 审核查询平台

Home Page: https://bytebase.com

License: Other

Shell 0.31% JavaScript 0.24% Go 48.47% TypeScript 13.69% CSS 0.20% BitBake 0.04% HTML 0.01% Smarty 0.01% PLpgSQL 3.31% Vue 33.64% Dockerfile 0.07%

bytebase's Introduction

Bytebase

Live DemoInstallHelpDevelopmentDesign Doc

status go report Docker pulls

Bytebase is a web-based, zero-config, dependency-free database schema change and version control management tool for DBAs and developers.

For DBA - 10x operational efficiency

A collaborative web-console to allow DBAs to manage database tasks and handle developer tickets much more efficiently than traditonal tools.

For Tech Lead - Improve team velocity and reduce risk

Teams using Bytebase will naturally adopt industry best practice for managing database schema changes. Tech leads will see an improved development velocity and reduced outages caused by database changes.

For Developer - Holistic view of database schema changes

Regardless of working as an IC in a team or managing your own side project, developers using Bytebase will have a holistic view of all the related database info, the ongoing database schema change tasks and the past database migration history.

Features

  • Web-based schema change and management workspace for teams
  • Version control based schema migration (Database-as-Code)
  • Classic UI based schema migration (SQL Review)
  • Built-in SQL Editor
  • Detailed migration history
  • Multi-tenancy (rollout change to homogeneous databases belonged to different tenants)
  • Backup and restore
  • Anomaly center
  • Environment policy
    • Approval policy
    • Backup schedule enforcement
  • Schema drift detection
  • Backward compatibility schema change check
  • Role-based access control (RBAC)
  • MySQL support
  • PostgreSQL support
  • TiDB support
  • Snowflake support
  • ClickHouse support
  • GitLab CE/EE support (Database-as-Code, login with GitLab account, project membership sync)
  • Webhook integration for Slack, Discord, MS Teams, DingTalk(钉钉), Feishu(飞书), WeCom(企业微信)
  • GitLab.com support
  • GitHub support
Fig.1 - Dashboard

Screenshot

Fig.2 - SQL review issue pipeline

Screenshot

Fig.3 - GitLab based schema migration (Database-as-code)

Screenshot

Fig.4 - Built-in SQL Editor

Screenshot

Installation

Detailed installation guide

Run on localhost:8080

docker run --init --name bytebase --restart always --publish 8080:8080 --volume ~/.bytebase/data:/var/opt/bytebase bytebase/bytebase:1.1.0 --data /var/opt/bytebase --host http://localhost --port 8080
docker run --init --name bytebase --restart always --publish 80:80 --volume ~/.bytebase/data:/var/opt/bytebase bytebase/bytebase:1.1.0 --data /var/opt/bytebase --host https://bytebase.example.com --port 80

📕 Docs

In particular, get familar with various product concept such as data model, roles and permissions and etc.

Design doc

https://github.com/bytebase/bytebase/tree/main/docs/design

Version upgrade policy

https://github.com/bytebase/bytebase/tree/main/docs/version-management.md

🕊 Interested in contributing?

  1. Checkout issues tagged with good first issue.

  2. We are maintaining an online database glossary list, you can add/improve content there.

Note: We are quite disciplined on tech stack. If you consider bringing a new programming language, framework and any non-trivial external dependency, please open a discussion first.

🏗 Development

Bytebase is built with a curated tech stack. It is optimized for developer experience and is very easy to start working on the code:

  1. It has no external dependency.
  2. It requires zero config.
  3. 1 command to start backend and 1 command to start frontend, both with live reload support.

Coding guideline

Tech Stack

Screenshot

Data Model

Screenshot

Prerequisites

  • Go (1.16 or later)
  • pnpm
  • Air (1.27.10 or later). This is for backend live reload.

Steps

  1. Install Air.

  2. Pull source.

    git clone https://github.com/bytebase/bytebase
  3. Set up pre-commit hooks.

     cd bytebase
     pre-commit install
     pre-commit install --hook-type commit-msg
  4. Start backend using air (with live reload).

    air -c scripts/.air.toml

    Change the open file limit if you encounter "error: too many open files".

    ulimit -n 10240
    
  5. Start frontend (with live reload).

    cd frontend && pnpm i && pnpm dev

Bytebase should now be running at https://localhost:3000 and change either frontend or backend code would trigger live reload.

Star History

Star History Chart

We are hiring

We are looking for engineers and developer advocates, interns are also welcomed. Check out our jobs page.

bytebase's People

Contributors

tianzhou avatar spinningbot avatar d-bytebase avatar liuji-jim avatar dragonly avatar boojack avatar xiaoluoboding avatar ecmadao avatar zhouzilong2020 avatar qsliu2017 avatar rainbowdashy avatar h3n4l avatar rebelice avatar suzaku avatar snyk-bot avatar cluas avatar unknwon avatar tnir avatar sepush avatar tisonkun avatar innei avatar 0xflotus avatar yaohui-wyh avatar silentred avatar raysarl avatar milkwine avatar iczc avatar megrax avatar cosmtrek avatar jiweiyuan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.