Web-based, zero-config, dependency-free database schema change and version control tool for teams

Bytebase

Live DemoInstallHelpDevelopmentDesign Doc

license status go report Docker pulls

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

  • Web-based schema change and management workspace for teams
  • Version control based schema migration (Database-as-Code)
  • Classic UI based schema migraiton (SQL Review)
  • Detailed migration history
  • 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
  • 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

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:0.9.0 --data /var/opt/bytebase --host http://localhost --port 8080

Run on https://bytebase.example.com

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

📕 Docs

User doc https://docs.bytebase.com

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

🕊 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.

🏗 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.

Tech Stack

Screenshot

Data Model

Screenshot

Prerequisites

  • Go (1.16 or later)
  • Yarn
  • Air (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 && yarn && yarn dev

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

Coding guideline

Here

Notice

Bytebase is in public alpha and we may make breaking schema changes between versions. We plan to stabilize the schema around the middle of August. In the mean time, if you are eager to try Bytebase for your business and encounter issue when upgrading to the new version. Please contact [email protected] or join our Discord server, and we will help you manually upgrade the schema.

We are hiring

We are looking for an experienced frontend engineer to lead Bytebase frontend development. Check out our jobs page.

Owner
Bytebase
Web-based, zero-config, dependency-free database schema change and version control management tool for teams.
Bytebase
Comments
  • feat(git): consolidate repository webhook

    feat(git): consolidate repository webhook

    We used to create a webhook for every VCS project, which brought some problems:

    1. There is a limit to the number of webhooks in a code repository, and Bytebase is likely to exhaust the webhook resources.
    2. When a push event occurs, the code host will send messages to all webhooks indiscriminately, which may consume Bytebase's network resources.
    3. Since we cannot distinguish whether a push event can create an issue in another project, we will create many warning activities.

    We try the following solutions:

    1. All Bytebase projects connected to a code repository will reuse a webhook.
    2. When a push event is received, we iterate through each VCS project connected to this webhook. We only create a warning activity for each project when no issue is created.

    Some implementation details:

    1. When the same repository web url already exists, we will not create a webhook but reuse the previous one.
    2. Only delete the code host webhook if this project is the last one to use this webhook.
    3. The refresh token should be a batch update.
    CleanShot 2022-09-15 at 12 46 14@2x CleanShot 2022-09-15 at 12 46 31@2x
  • FindMigrationHistoryList error when use external pg

    FindMigrationHistoryList error when use external pg

    • use external pg as bytebase db
    • create db on tenant mode project check duplicate version error: "failed to connect to `host=xxx user=xxx database=bytebase`: server error (FATAL: database \"bytebase\" does not exist (SQLSTATE 3D000))"

    https://github.com/bytebase/bytebase/blob/5d3ca6e452bec01bc8362964c3c2b4698d04e782/plugin/db/util/driverutil.go#L191 https://github.com/bytebase/bytebase/blob/5d3ca6e452bec01bc8362964c3c2b4698d04e782/plugin/db/pg/pg.go#L1011

    I think it was these two places that caused this problem,the dsn of the target database is used instead of the dsn of the external pg

  • fix(ui/ux): pipeline flow nav item overflow

    fix(ui/ux): pipeline flow nav item overflow

    Before: Xnip2022-02-26_13-54-09

    After fix: image

    Fixed this layout problem only in PC viewport, it also appear in mobile view.

    See this.

    Xnip2022-02-26_14-07-43

    Unlike the previous ones, this is the tooltip element css position, and a solution can be negotiated.

  • fix: tenant mode VSC with DatebaseNameTemplate task execute error

    fix: tenant mode VSC with DatebaseNameTemplate task execute error

    Signed-off-by: cluas [email protected]

    case:

    • tenant template: {{DB_NAME}}_{{TENTANT}}
    • tenants: a, b
    • demo db: demo
    • file path template: {{DB_NAME}}__{{VERSION}}__{{TYPE}}__{{DESCRIPTION}}.sql
    • example push file: demo__v0.1.0__migrate__demo.sql
    • tasks after gitops webhook: task1 {database: demo_a, namespace: demo_a}}, task2 {database: demo_b, namespace: demo_b}}

    but here it parse {{DB_NAME}}, in this case, always is demo. so subsequent tasks will immediately go wrong.

  • Error status code 422 trying to integrate version control with project

    Error status code 422 trying to integrate version control with project

    Provide the MySQL version you are using (if related with instance/database operation) MariaDB 10.6.4

    Provide the Bytebase version you are using 0.8.1

    Describe the bug After adding a project, database, initial migration schema, and Git provider (self hosted gitlab instance), I attempted to integrate my project with Gitlab. At the final step where you click Finish it gives me an error message "Failed to create webhook for project ID: 101, status code: 422"

    Steps or screenshots to reproduce the behavior

    1. Go to project
    2. Click Version Control tab
    3. Click Version Control Workflow and click Configure version control button
    4. Click on existing Git provider
    5. Click on repo
    6. Enter "master" as the branch
    7. Click Finish
    8. See error: "Failed to create webhook for project ID: 101, status code: 422"

    Expected behavior

    Version control is integrated successfully.

    Desktop (please complete the following information):

    • Browser Firefox 91.3.0esr

    I'm not sure what to look for. I also tried unprotecting the master branch for the repo but I'm still seeing this error message. If it's relevant, I do not have any .sql files present in the repo yet as I'm not sure whether Bytebase is supposed to create them for me, or if I'm supposed to provide them ahead of time... I assumed Bytebase would generate the .sql files in the repo.

  • feat(PITR): embed mysqlbinlog

    feat(PITR): embed mysqlbinlog

    TODO:

    • [x] Embed mysqlbinlog-8.0.28-macos11-arm64
    • [x] Embed mysqlbinlog-8.0.28-linux-glibc-2.17-x86_64
    • [x] A tiny unit test for mysqlbinlog-8.0.28-linux-glibc-2.17-x86_64
    • [x] Describe production process
  • When docker run according to docs ERROR   failed to extract txz file, error: failed to create directory

    When docker run according to docs ERROR failed to extract txz file, error: failed to create directory "share/postgresql/", error: mkdir /var/opt/bytebase/resources: permission denied

    Provide the Bytebase version you are using docker 1.0.0 Describe the bug

    docker run --init --name bytebase --restart always --publish 80:80 --volume ~/.bytebase/data:/var/opt/bytebase bytebase/bytebase:1.0.0 --data /var/opt/bytebase --host https://bytebase.example.com --port 80
    -----Config BEGIN-----
    mode=release
    server=https://bytebase.example.com:80
    datastore=https://bytebase.example.com:81
    frontend=https://bytebase.example.com:80
    dsn=file:/var/opt/bytebase/bytebase.db
    resourceDir=/var/opt/bytebase/resources
    pgdataDir=/var/opt/bytebase/pgdata
    seedDir=seed/release
    readonly=false
    demo=false
    debug=false
    -----Config END-------
    2022-03-11 03:23:24.091208 I | Installing Postgres OS "linux" Arch "amd64" txz "postgres-linux-x86_64-alpine_linux.txz"
    2022-03-11T03:23:24.092Z        ERROR   failed to extract txz file, error: failed to create directory "share/postgresql/", error: mkdir /var/opt/bytebase/resources: permission denied
    
  • Schema update in VCS doesn't trigger Bytebase to apply the change

    Schema update in VCS doesn't trigger Bytebase to apply the change

    Provide the MySQL version you are using (if related with instance/database operation) MySQL 5.6.30

    Provide the GitLab version you are using (if related with VCS integration) 14.5.0

    Provide the Bytebase version you are using 0.8.1

    Describe the bug After integrating with self hosted Gitlab, I set the file path template and schema path template, then committed a schema update to the repository matching the template, but nothing happened in Bytebase. Even with debug logging enabled, I don't see any activity on Bytebase.

    Steps or screenshots to reproduce the behavior

    1. Integrate VCS with a project
    2. Set branch to master
    3. Set file path template to {{DB_NAME}}{{VERSION}}{{TYPE}}.sql
    4. Click Update button
    5. Commit a file in the root directory of the master branch named dbtest__202112031025__migrate.sql
    6. Expect something to happen in Bytebase but nothing happens
    7. Check the debug output, but there is nothing
    8. Confirm the instance name is dbtest
    9. Confirm the database name is dbtest

    Expected behavior

    I believe a new migration is supposed to happen in Bytebase, but I'm not sure if it's an issue where Gitlab is not calling Bytebase to do the update, or if Bytebase is not polling Gitlab for changes, or maybe it's not detecting a matching file pattern.

    Desktop (please complete the following information):

    • Browser Firefox 91.3.0esr

    Additional context

    It would be helpful if the documentation explained in a little more detail what the process was. For example, does Gitlab send a webhook reqeust to Bytebase after committing to the repo, or does Bytebase periodically check for changes in the repo? Also it would be helpful in the case where Bytebase checked for schema updates to log that it didn't find any files matching the pattern.

  • fix: send SIGINT to clean up resources

    fix: send SIGINT to clean up resources

    Send SIGINT to backend when restarting to make sure the sqlite database is closed properly.

    This PR is blocked by a PR for air.

    After this change, I start to see the "BYE" banner when I make a change: Screen Shot 2021-12-02 at 8 46 46 PM

  • docker run with error

    docker run with error "pthread_create failed: Operation not permitted"

    Describe the bug

    when i run docker command following the document, it returns this error:

    runtime/cgo: pthread_create failed: Operation not permitted
    SIGABRT: abort
    PC=0x7f93d7df157c m=0 sigcode=18446744073709551610
    
    goroutine 0 [idle]:
    runtime: g 0: unknown pc 0x7f93d7df157c
    stack: frame={sp:0x7ffd80b7b940, fp:0x0} stack=[0x7ffd8037cec0,0x7ffd80b7bed0)
    0x00007ffd80b7b840:  0x00007f93d7d7bf10  0x00007f93d7e01d20
    0x00007ffd80b7b850:  0x0000000000000000  0x00007ffd80b7bc20
    0x00007ffd80b7b860:  0x2525252525252525  0x2525252525252525
    0x00007ffd80b7b870:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b880:  0x00000000000000ff  0x0000000000000000
    0x00007ffd80b7b890:  0x00000000000000ff  0x0000000000000000
    0x00007ffd80b7b8a0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8b0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8c0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8d0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8e0:  0x0000000004a0859c  0x0000000004a089a4
    0x00007ffd80b7b8f0:  0x00000000069ce66b  0x0000000000000000
    0x00007ffd80b7b900:  0x0000000002218c7b  0x0000000000000006
    0x00007ffd80b7b910:  0x00000000069ce66a  0x0000000000000000
    0x00007ffd80b7b920:  0x000000000221569a  0x0000000000000004
    0x00007ffd80b7b930:  0x00000000069ce66c  0x00007f93d7df156e
    0x00007ffd80b7b940: <0x0000000002216eb6  0x0000000000000005
    0x00007ffd80b7b950:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b960:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b970:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b980:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b990:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9a0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9b0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9c0:  0x0000000000000002  0x015a0daa60964700
    0x00007ffd80b7b9d0:  0x00007f93d7d65e40  0x0000000000000006
    0x00007ffd80b7b9e0:  0x00000000088412e0  0x0000000000000178
    0x00007ffd80b7b9f0:  0x00000000068190a0  0x00007f93d7da5a02
    0x00007ffd80b7ba00:  0x00007f93d7f5de70  0x00007f93d7d90469
    0x00007ffd80b7ba10:  0x0000000000000020  0x0000000000000000
    0x00007ffd80b7ba20:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7ba30:  0x0000000000000000  0x0000000000000000
    runtime: g 0: unknown pc 0x7f93d7df157c
    stack: frame={sp:0x7ffd80b7b940, fp:0x0} stack=[0x7ffd8037cec0,0x7ffd80b7bed0)
    0x00007ffd80b7b840:  0x00007f93d7d7bf10  0x00007f93d7e01d20
    0x00007ffd80b7b850:  0x0000000000000000  0x00007ffd80b7bc20
    0x00007ffd80b7b860:  0x2525252525252525  0x2525252525252525
    0x00007ffd80b7b870:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b880:  0x00000000000000ff  0x0000000000000000
    0x00007ffd80b7b890:  0x00000000000000ff  0x0000000000000000
    0x00007ffd80b7b8a0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8b0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8c0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8d0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b8e0:  0x0000000004a0859c  0x0000000004a089a4
    0x00007ffd80b7b8f0:  0x00000000069ce66b  0x0000000000000000
    0x00007ffd80b7b900:  0x0000000002218c7b  0x0000000000000006
    0x00007ffd80b7b910:  0x00000000069ce66a  0x0000000000000000
    0x00007ffd80b7b920:  0x000000000221569a  0x0000000000000004
    0x00007ffd80b7b930:  0x00000000069ce66c  0x00007f93d7df156e
    0x00007ffd80b7b940: <0x0000000002216eb6  0x0000000000000005
    0x00007ffd80b7b950:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b960:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b970:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b980:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b990:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9a0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9b0:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7b9c0:  0x0000000000000002  0x015a0daa60964700
    0x00007ffd80b7b9d0:  0x00007f93d7d65e40  0x0000000000000006
    0x00007ffd80b7b9e0:  0x00000000088412e0  0x0000000000000178
    0x00007ffd80b7b9f0:  0x00000000068190a0  0x00007f93d7da5a02
    0x00007ffd80b7ba00:  0x00007f93d7f5de70  0x00007f93d7d90469
    0x00007ffd80b7ba10:  0x0000000000000020  0x0000000000000000
    0x00007ffd80b7ba20:  0x0000000000000000  0x0000000000000000
    0x00007ffd80b7ba30:  0x0000000000000000  0x0000000000000000
    
    goroutine 1 [running]:
    runtime.systemstack_switch()
            /usr/local/go/src/runtime/asm_amd64.s:459 fp=0xc000070780 sp=0xc000070778 pc=0x49b540
    runtime.main()
            /usr/local/go/src/runtime/proc.go:170 +0x6d fp=0xc0000707e0 sp=0xc000070780 pc=0x46b9ad
    runtime.goexit()
            /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000707e8 sp=0xc0000707e0 pc=0x49d761
    
    rax    0x0
    rbx    0x7f93d7d65e40
    rcx    0x7f93d7df157c
    rdx    0x6
    rdi    0x7
    rsi    0x7
    rbp    0x7
    rsp    0x7ffd80b7b940
    r8     0x7ffd80b7ba10
    r9     0x0
    r10    0x8
    r11    0x246
    r12    0x6
    r13    0x178
    r14    0x68190a0
    r15    0x7f93b09f435b
    rip    0x7f93d7df157c
    rflags 0x246
    cs     0x33
    fs     0x0
    gs     0x0
    
    

    docker info

    Client:
     Debug Mode: false
    
    Server:
     Containers: 1
      Running: 0
      Paused: 0
      Stopped: 1
     Images: 1
     Server Version: 19.03.12
     Storage Driver: overlay2
      Backing Filesystem: xfs
      Supports d_type: true
      Native Overlay Diff: true
     Logging Driver: json-file
     Cgroup Driver: systemd
     Plugins:
      Volume: local
      Network: bridge host ipvlan macvlan null overlay
      Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
     Swarm: inactive
     Runtimes: runc oci
     Default Runtime: runc
     Init Binary: docker-init
     containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
     runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
     init version:
     Security Options:
      apparmor
      seccomp
       Profile: default
     Kernel Version: 4.12.14-120-default
     Operating System: SUSE Linux Enterprise Server 12 SP5
     OSType: linux
     Architecture: x86_64
     CPUs: 4
     Total Memory: 7.548GiB
     Name: nginx2
     ID: NHBY:TWHM:I5HV:BILT:5JAG:WN3N:BKBY:OLUZ:YGKT:TKLG:4AQW:W2P7
     Docker Root Dir: /var/lib/docker
     Debug Mode: false
     Registry: https://index.docker.io/v1/
     Labels:
     Experimental: false
     Insecure Registries:
      127.0.0.0/8
     Live Restore Enabled: false
    
    WARNING: No swap limit support
    
    

    Steps to reproduce

    docker run --init
    --name bytebase
    --restart always
    --publish 5678:8080
    --health-cmd "curl --fail http://localhost:5678/healthz || exit 1"
    --health-interval 5m
    --health-timeout 60s
    --volume ~/.bytebase/data:/var/opt/bytebase
    bytebase/bytebase:1.6.0
    --data /var/opt/bytebase
    --port 8080

    Expected behavior

    container runs normally

    Screenshots

    No response

    Provide the Bytebase version you are using

    bytebase:1.6.0

    Provide the GitLab version you are using

    No response

    Provide the MySQL version you are using

    No response

    Provide the PostgreSQL version you are using

    No response

    Desktop

    No response

    Additional context

    OS: SUSE Linux Enterprise Server 12 SP5 Kernel: Linux nginx2 4.12.14-120-default

  • Chrome all labels show as their variable names.

    Chrome all labels show as their variable names.

    Provide the Bytebase version you are using 1.0.3, I also tested 1.0.2 and 1.0.0

    Describe the bug

    When using Google Chrome all labels show as their variable names.

    Steps or screenshots to reproduce the behavior

    1. Startup Bytebase
    2. visit the dashboard
    Screenshot 2022-04-13 at 14 51 55

    Expected behavior

    As in example screenshots and safari. actual content & titles instead of variable namings. Screenshot 2022-04-13 at 15 08 47

    Desktop (please complete the following information):

    • Browser [chrome]
    • Version [100]

    Additional context

    • Update: It seems like a content management issue in chrome 100. A lot of content isn't displayed. e.g. Modal pop-ups have no content. only a variable name.
  • Prevent self-service user signup

    Prevent self-service user signup

    Is your feature request related to a problem?

    The regular email/password authentication allows anyone to signup for an account on any bytebase instance. Once a user signs up they get the default Developer role.

    Describe the solution you'd like

    I'd love to simply set an env var that would hide the signup form, so that new users are only created by the admin only. The API endpoint for signup should also honor the env var and return an error if someone tries to hit the endpoint directly to create a user.

    Additional context

    https://github.com/bytebase/bytebase/discussions/3667#discussioncomment-4385372

  • Support specifying s3 endpoint

    Support specifying s3 endpoint

    Is your feature request related to a problem?

    As I read from the doc, I don't see the possibility of specifying s3 endpoint, and with current situation, I'm afraid I won't be able to use S3-compatible object storage, like minio or object storage on other cloud providers.

    Describe the solution you'd like

    Support specifying the following parameter to authenticate into s3:

    • S3_ENDPOINT
    • S3_ACCESS_KEY_ID
    • S3_SECRET_ACCESS_KEY

    Additional context

    No response

  • Connection with AWS redshift

    Connection with AWS redshift

    Is your feature request related to a problem?

    I tried to make a connection with redshift but I was not successful at the time of fetching the user to create the connection as a database, I believe it is the differences between postgree and redshift.

    Describe the solution you'd like

    I suggest creating a feature that can connect with redshift.

    Additional context

    No response

  • 项目管理安全性问题

    项目管理安全性问题

    Describe the bug

    项目访问地址: https://demo.bytebase.com/project/tenant-ui-3006#overview

    当我不在该项目中时, 主需要直接访问项目地址可以直接将自己添加到项目中

    并且项目成员可以随意的踢出任何人。

    Steps to reproduce

    1. 用户A没有项目权限,项目地址:https://demo.bytebase.com/project/tenant-ui-3006#overview
    2. 用户A直接访问地址后,点击设置--->管理成员--->添加自己
    3. 用户A能够直接拿到该项目权限

    Expected behavior

    权限拦截, 项目成员管理应该由项目拥有者操作

    Screenshots

    No response

    Provide the Bytebase version you are using

    latest

    Provide the GitLab version you are using

    No response

    Provide the MySQL version you are using

    No response

    Provide the PostgreSQL version you are using

    No response

    Desktop

    No response

    Additional context

    No response

A flexible and powerful SQL string builder library plus a zero-config ORM.

SQL builder for Go Install Usage Basic usage Pre-defined SQL builders Build SQL for MySQL, PostgreSQL or SQLite Using Struct as a light weight ORM Nes

Dec 30, 2022
Zero boilerplate database operations for Go
Zero boilerplate database operations for Go

(Now compatible with MySQL and PostgreSQL!) Everyone knows that performing simple DATABASE queries in Go takes numerous lines of code that is often re

Jan 2, 2023
Podman based development-only dependency manager for Linux.

Tent is a CLI tool for running development dependencies such as MySQL, Mongo, ElasticSearch etc inside pre-configured containers using simple one

Aug 30, 2022
GitHub's Online Schema Migrations for MySQL
GitHub's Online Schema Migrations for MySQL

gh-ost GitHub's online schema migration for MySQL gh-ost is a triggerless online schema migration solution for MySQL. It is testable and provides paus

Jan 4, 2023
Manage Schema for KubeDB managed Databases

schema-manager Manage Schema for KubeDB managed Databases Installation To install KubeDB, please follow the guide here. Using KubeDB Want to learn how

Feb 19, 2022
Go library that stores data in Redis with SQL-like schema

Go library that stores data in Redis with SQL-like schema. The goal of this library is we can store data in Redis with table form.

Mar 14, 2022
[mirror] the database client and tools for the Go vulnerability database

The Go Vulnerability Database golang.org/x/vulndb This repository is a prototype of the Go Vulnerability Database. Read the Draft Design. Neither the

Dec 29, 2022
Database - Example project of database realization using drivers and models

database Golang based database realization Description Example project of databa

Feb 10, 2022
Stash large datasets on GitHub for free, quick, and easy download 🐿

squirrel Stash large datasets on GitHub for free, quick, and easy download ?? Install To install squirrel, run the following: curl ... Usage Create a

Dec 31, 2021
Package sqlite is a CGo-free port of SQLite.

sqlite Package sqlite is a CGo-free port of SQLite. SQLite is an in-process implementation of a self-contained, serverless, zero-configuration, transa

Nov 30, 2021
A simple Golang-based application that queries a PostgreSQL database

Qwik-E-Mart Demo App A simple Golang-based application that queries a PostgreSQL database named qwikemart to read and return customer data stored in t

Nov 6, 2021
🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts

dbbench Table of Contents Description Example Installation Supported Databases Usage Custom Scripts Troubeshooting Development Acknowledgements Descri

Dec 30, 2022
Dumpling is a fast, easy-to-use tool written by Go for dumping data from the database(MySQL, TiDB...) to local/cloud(S3, GCP...) in multifarious formats(SQL, CSV...).

?? Dumpling Dumpling is a tool and a Go library for creating SQL dump from a MySQL-compatible database. It is intended to replace mysqldump and mydump

Nov 9, 2022
Goose database migration tool - fork of https://bitbucket.org/liamstask/goose

goose Goose is a database migration tool. Manage your database schema by creating incremental SQL changes or Go functions. Goals of this fork github.c

Dec 30, 2022
The EVEmu Database Tool

EVEDBTool - The EVEmu Database Tool This is a tool written in Go to manage the installation, versioning and update of the EVEmu database. A pre-built

Sep 27, 2022
A tool I made to quickly store bug bounty program scopes in a local sqlite3 database

GoScope A tool I made to quickly store bug bounty program scopes in a local sqlite3 database. Download or copy a Burpsuite configuration file from the

Nov 18, 2021
A database connection tool for sensitive data
A database connection tool for sensitive data

go-sql 用于快速统计数据库行数、敏感字段匹配、数据库连接情况。 usage ./go-sql_darwin_amd64 -h ./go-sql_darwin_amd64 -f db.yaml -k name,user ./go-sql_darwin_amd64 -f db.yaml --min

Apr 4, 2022
A Go rest API project that is following solid and common principles and is connected to local MySQL database.
A Go rest API project that is following solid and common principles and is connected to local MySQL database.

This is an intermediate-level go project that running with a project structure optimized RESTful API service in Go. API's of that project is designed based on solid and common principles and connected to the local MySQL database.

Dec 25, 2022