Giter VIP home page Giter VIP logo

bytebase's Introduction

Bytebase

go report Artifact Hub

Live DemoInstallHelpDevelopmentDesign DocDiscord


What is Bytebase?

Bytebase is a Database CI/CD solution for the Developers and DBAs. It's the only database CI/CD project included in the CNCF Landscape. The Bytebase family consists of these tools:

  • Bytebase Console: A web-based GUI for developers and DBAs to manage the database development lifecycle.
  • Bytebase CLI (bb): The CLI to help developers integrate MySQL and PostgreSQL schema change into the existing CI/CD workflow.
  • Bytebase GitHub App and SQL Review GitHub Action: The GitHub App and GitHub Action to detect SQL anti-patterns and enforce a consistent SQL style guide during Pull Request.

Supported Database

✅ MySQL ✅ PostgreSQL ✅ TiDB ✅ ClickHouse ✅ Snowflake

VCS Integration

GitOps workflow, database-as-Code, login with VCS account, project membership sync.

✅ GitLab CE/EE ✅ GitHub.com

Features

  • Web-based database change and management workspace for teams
  • SQL Review
  • Built-in SQL Editor
  • Detailed migration history
  • Multi-tenancy (rollout change to homogeneous databases belonged to different tenants)
  • Online schema change based on gh-ost
  • Backup and restore
  • Point-in-time recovery (PITR)
  • Anomaly center
  • Environment policy
    • Approval policy
    • Backup schedule enforcement
  • Schema drift detection
  • Backward compatibility schema change check
  • Role-based access control (RBAC)
  • Webhook integration for Slack, Discord, MS Teams, DingTalk(钉钉), Feishu(飞书), WeCom(企业微信)
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

📕 Docs

Installation

https://bytebase.com/docs/get-started/install/overview

User doc

https://bytebase.com/docs

In particular, get familiar 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.

  3. Before creating a Pull Request, please follow the Development Guide for branch and commit message conventions.

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.

Learn the codebase

Prerequisites

  • Go (1.19 or later)
  • pnpm
  • Air (must use forked repo 87187cc). This is for backend live reload.

Steps

  1. Install forked Air 87187cc. Use 87187cc because it has the cherrypicked fix.

    go install github.com/bytebase/air@87187cc
  2. Pull source.

    git clone https://github.com/bytebase/bytebase
  3. 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

    If you need additional runtime parameters such as --backup-bucket, please add them like this:

    air -c scripts/.air.toml -- --backup-region us-east-1 --backup-bucket s3:\\/\\/example-bucket --backup-credential ~/.aws/credentials
  4. Start frontend (with live reload).

    cd frontend && pnpm i && pnpm dev

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

  5. (Optional) Install pre-commit.

    cd bytebase
    pre-commit install
    pre-commit install --hook-type commit-msg

Star History

Star History Chart

Jobs

Check out our jobs page for openings.

bytebase's People

Contributors

0xflotus avatar adela-bytebase avatar boojack avatar chiyutianyi avatar cluas avatar d-bytebase avatar dragonly avatar ecmadao avatar h3n4l avatar innei avatar liuji-jim avatar megrax avatar milasuperstar avatar qsliu2017 avatar rainbowdashy avatar rebelice avatar renovate[bot] avatar sepush avatar snyk-bot avatar spinningbot avatar suzaku avatar tianzhou avatar tisonkun avatar tnir avatar unknwon avatar vuhailam avatar xiaoluoboding avatar yaohui-wyh avatar zheaoli avatar zhouzilong2020 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.