Announce Bytebase 1.0 and our Team Plan view the plan

search

Getting Started

bb CLI is the command-line tool of Bytebase, helping developers integrate MySQL and PostgreSQL schema change into the existing CI/CD workflow. By integrating bb with your existing CI/CD system (GitLab CI, GitHub Actions, etc.), you can bring all best practices of CI/CD to the database.

This page contains a getting-started covering frequently used commands.

Install bb

To install bb, just paste the following command in a macOS Terminal or Linux shell prompt:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bytebase/bytebase/HEAD/scripts/install_bb.sh)"

This installs bb in /usr/local/bin. Run the following command to check if bb is installed:

bb --help

And the output will look like this:

A database management tool provided by bytebase.com

Usage:
  bb [flags]
  bb [command]

Available Commands:
  dump        Exports schema and data of a database.
  migrate     Migrate the database schema.
  restore     Restores schema and data of a database.

Flags:
  -h, --help   help for bb

Use "bb [command] --help" for more information about a command.

Start a local MySQL server via Docker

To use bb, you need a database. You can start an empty MySQL docker container (make sure the Docker Engine is running):

docker run -d \
  -e MYSQL_ROOT_PASSWORD=passwd \
  -p 3306:3306 \
  mysql/mysql-server

Restore sample database

After the MySQL server has started, you can restore an example database from our quickstart:

curl -O https://raw.githubusercontent.com/bytebase/bytebase/main/quickstart/test_schema/mysql/1_todo.sql
bb restore --dsn mysql://root:passwd@localhost:3306 --file 1_todo.sql

View current schema

To view the current schema, you can dump schema to stdout:

bb dump --dsn mysql://root:passwd@localhost:3306/ --schema-only
--
-- Table structure for `author`
--
CREATE TABLE `author` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT 'name of the author',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
...

Apply database migration

Say you want to add a phone_no column to the table author. This is a so-called database migration and you can use bb migrate to do so:

bb migrate \
  --dsn mysql://user:passwd@localhost:3306/bytebase_test_todo \
  --command "ALTER TABLE author ADD COLUMN phone_no VARCHAR(15);"

After migration, you can dump again to check if the migration has executed successfully:

bb dump --dsn mysql://root:passwd@localhost:3306/bytebase_test_todo --schema-only
--
-- Table structure for `author`
--
CREATE TABLE `author` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT 'name of the author',
  `phone_no` varchar(15) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
...