30 lines
516 B
Go
30 lines
516 B
Go
package simpleorm
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type Table struct {
|
|
Name string
|
|
TypeName string
|
|
Columns []Column
|
|
Constraints []Constraint
|
|
}
|
|
|
|
func (t *Table) ToDDL() string {
|
|
var ddl strings.Builder
|
|
ddl.WriteString("CREATE TABLE IF NOT EXISTS " + t.Name + " (")
|
|
for i, col := range t.Columns {
|
|
if i != 0 {
|
|
ddl.WriteString(", ")
|
|
}
|
|
ddl.WriteString(col.ToDDL())
|
|
}
|
|
for _, constr := range t.Constraints {
|
|
ddl.WriteString(", " + constr.ToDDL())
|
|
}
|
|
|
|
ddl.WriteString(");")
|
|
return ddl.String()
|
|
}
|