Open Source Database Browser for Go
v1.0.1

Visual Database Browser for GORM

A Prisma Studio-like database management UI that mounts directly into your Go application. Browse schemas, manage data, run SQL, export ERD diagrams, and import data — all from a single studio.Mount() call.

$go get github.com/MUKE-coder/gorm-studio/studio

Everything you need to manage your database

GORM Studio provides a complete set of tools for database management, all accessible through a web UI that mounts directly into your Go application.

Schema Discovery

Automatically introspects your database schema and GORM model structs via reflection. Works with SQLite, PostgreSQL, and MySQL.

Browse & Filter

Paginated data grid with column sorting, full-text search, and per-column filtering. See all your data at a glance.

CRUD Operations

Create, edit, and delete records through an intuitive modal interface. Supports bulk delete and composite primary keys.

Relationships

Navigate foreign key relationships between tables. Supports has_one, has_many, belongs_to, and many_to_many relations.

SQL Editor

Execute raw SQL queries with automatic read/write detection. DDL statements are blocked for safety. Full result display.

Schema Export

Export schemas as SQL DDL, JSON, YAML, DBML, or visual ERD diagrams in PNG and PDF format.

Data Import

Import data from JSON, CSV, SQL, and Excel files. Import schemas from SQL, JSON, YAML, or DBML to create tables.

Go Code Generation

Generate Go model structs from your database schema with proper GORM tags, type mapping, and relationship fields.

Get started in seconds

Add GORM Studio to any Go application with just a few lines of code.

main.go
package main

import (
    "github.com/gin-gonic/gin"
    "github.com/glebarez/sqlite"
    "gorm.io/gorm"
    "github.com/MUKE-coder/gorm-studio/studio"
)

type User struct {
    ID    uint   `gorm:"primaryKey"`
    Name  string `gorm:"size:100"`
    Email string `gorm:"uniqueIndex"`
}

func main() {
    db, _ := gorm.Open(sqlite.Open("app.db"), &gorm.Config{})
    db.AutoMigrate(&User{})

    r := gin.Default()
    studio.Mount(r, db, []interface{}{&User{}})
    r.Run(":8080") // Visit http://localhost:8080/studio
}