This tutorial is part of the Bytebase Terraform Provider series:
What You’ll Learn
Register database instances in Bytebase using Terraform.
Prerequisites
Before starting this tutorial, ensure you have:
- Completed Part 1:
- Bytebase running with built-in sample data
- Service account created
- Terraform initialized
- Environments configured
Step 1 - Explore Built-in Instances
Bytebase sample data includes two sample PostgreSQL instances. Let’s explore them:
-
In Bytebase, click Instances on the left sidebar. You’ll see two PostgreSQL instances:
- Test Sample Instance (port 8083)
- Prod Sample Instance (port 8084)
-
Click +Add Instance, you may add more database instances.

-
Click Projects on the left sidebar to see the Sample Project
, then click it. You’ll see:
hr_test
database on Test instance
hr_prod
database on Prod instance
-
Click + New DB, you may create more databases on the existing instances.

Now let’s import these instances into Terraform management.
Create 2-instances.tf
with the following configuration:
# Test Sample Instance - PostgreSQL on port 8083
resource "bytebase_instance" "test" {
depends_on = [bytebase_setting.environments]
resource_id = "test-sample-instance"
environment = "environments/test"
title = "Test Sample Instance"
engine = "POSTGRES"
# Assign instance license
activation = true
# Connection settings for the built-in test database
data_sources {
id = "admin-test"
type = "ADMIN"
host = "/tmp" # Unix socket for local connection
port = "8083"
username = "bbsample"
password = "" # Empty for local auth
}
}
# Production Sample Instance - PostgreSQL on port 8084
resource "bytebase_instance" "prod" {
depends_on = [bytebase_setting.environments]
resource_id = "prod-sample-instance"
environment = "environments/prod"
title = "Prod Sample Instance"
engine = "POSTGRES"
activation = true
data_sources {
id = "admin-prod"
type = "ADMIN"
host = "/tmp"
port = "8084"
username = "bbsample"
password = ""
}
}
Understanding the Configuration
- depends_on: Ensures environments from Part 1 exist first
- resource_id: Must match the existing instance ID
- environment: Links instance to Test or Prod environment
- data_sources: Connection details for the database
Step 3 - Apply Configuration
Now apply the configuration:
terraform plan
terraform apply
Step 4 - Verify Setup
- Go to Instances in Bytebase.
- Verify both instances show:
- Correct environment assignment
Y
under License column (if using Enterprise)
You can now modify instance properties through Terraform. For example, to rename an instance:
resource "bytebase_instance" "test" {
# ... other config ...
title = "Development Database" # Changed title
}
Summary and Next Steps
You’ve successfully registered database instances with Terraform!
Part 3: Manage Projects with Terraform
Responses are generated using AI and may contain mistakes.