SQL to Go: models from a DDL script
What follows is not a mock-up: it is the real output of the generator for the script on the left. You get the same code in the editor under “Codegen → Go”.
The inputschema.sql
CREATE TABLE users (
id BIGINT NOT NULL PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
full_name VARCHAR(120),
is_active BOOLEAN NOT NULL,
created_at TIMESTAMP NOT NULL
);
CREATE TABLE orders (
id BIGINT NOT NULL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
total DECIMAL(12,2) NOT NULL,
note TEXT,
placed_at TIMESTAMP NOT NULL
);What comes outmodels.go
import (
"time"
)
type Users struct {
ID int64 `json:"id"` // BIGINT
Email string `json:"email"`
FullName *string `json:"full_name,omitempty"`
IsActive bool `json:"is_active"`
CreatedAt time.Time `json:"created_at"`
}
type Orders struct {
ID int64 `json:"id"` // BIGINT
UserID int64 `json:"user_id"` // BIGINT → users.id
Total string `json:"total"` // DECIMAL(12,2)
Note *string `json:"note,omitempty"`
PlacedAt time.Time `json:"placed_at"`
}Open the editor
The script stays in the browser: both parsing and generation run on your machine, nothing goes to a server.
How the types land
| in SQL | in the model |
|---|---|
BIGINT | int64 |
VARCHAR(255) | string |
BOOLEAN | bool |
TIMESTAMP | time.Time |
DECIMAL(12,2) | string |
TEXT | *string |
- Optional field
*string- Column name
json:"full_name,omitempty"- Relation
// BIGINT → users.id