yt-gen-app/lib/templ/tmpl/backend/db/migrate.tmpl

40 lines
1.3 KiB
Cheetah

package db
import (
"{{ .Name }}/db/model"
{{ $hasFieldTime := false }}{{ range $idxTbl, $tbl := .DB.Tables }}{{ if $tbl.Values }}{{ $hasFldTime := hasFieldType $tbl.Fields "time" }}{{ if eq $hasFldTime true }}{{ $hasFieldTime = true }}{{ end }}{{ end }}{{ if $hasFieldTime }}"time"{{ end }}{{ end }}
uuid "github.com/satori/go.uuid"
)
{{ range $index, $item := .DB.Tables }}{{ if $item.Values }}
func update{{ fieldNamePrepare $item.Name}}() {
records := []model.{{ fieldNamePrepare $item.Name }} {
{{ range $i, $field := $item.Values }}
{
{{ range $name, $value := $field }}
{{ if eq $name "id" }}
Base: model.Base{
ID: uuid.FromStringOrNil(`{{ $value }}`),
},
{{ end }}
{{ if ne $name "id" }}{{ fieldNamePrepare $name }}: {{ $fld := fieldInTableByName $name $item }}{{ $fldTypeName := fieldType $fld }}{{ fieldStringToType $value $fld }},{{ end }}
{{ end }}
},
{{ end }}
}
var err error
tx := BeginTransation()
defer func() {
EndTransaction(tx, err)
}()
tx.Delete(&model.{{ fieldNamePrepare $item.Name}}{}, "1 = 1")
if res := tx.Create(&records); res.RowsAffected == 0 {
panic(err)
}
}
{{ end }}{{ end }}