Merge branch 'master' of github.com:nullbio/sqlboiler

This commit is contained in:
Patrick O'brien 2016-07-15 20:17:15 +10:00
commit 05aa289167
4 changed files with 31 additions and 46 deletions

View file

@ -15,7 +15,7 @@ func ({{$rel.Function.Receiver}} *{{$rel.LocalTable.NameGo}}) {{$rel.Function.Na
func ({{$rel.Function.Receiver}} *{{$rel.LocalTable.NameGo}}) {{$rel.Function.Name}}X(exec boil.Executor, selectCols ...string) ({{$rel.ForeignTable.Slice}}, error) {
var ret {{$rel.ForeignTable.Slice}}
selectColumns := `*`
selectColumns := `"{{id 0}}".*`
if len(selectCols) != 0 {
selectColumns = `"{{id 0}}".` + strings.Join(selectCols, `","{{id 0}}"."`)
}

View file

@ -5,10 +5,8 @@
{{- range toManyRelationships .Table.Name .Tables -}}
{{- $rel := textsFromRelationship $dot.Tables $table . -}}
func Test{{$rel.LocalTable.NameGo}}ToMany{{$rel.Function.Name}}(t *testing.T) {
tx, err := boil.Begin()
if err != nil {
t.Fatal(err)
}
var err error
tx := MustTx(boil.Begin())
defer tx.Rollback()
var a {{$rel.LocalTable.NameGo}}
@ -18,19 +16,42 @@ func Test{{$rel.LocalTable.NameGo}}ToMany{{$rel.Function.Name}}(t *testing.T) {
t.Fatal(err)
}
boil.RandomizeStruct(&b, {{$rel.ForeignTable.NameSingular | camelCase}}DBTypes, true)
boil.RandomizeStruct(&c, {{$rel.ForeignTable.NameSingular | camelCase}}DBTypes, true)
boil.RandomizeStruct(&b, {{$rel.ForeignTable.NameSingular | camelCase}}DBTypes, true, "{{.ForeignColumn}}")
boil.RandomizeStruct(&c, {{$rel.ForeignTable.NameSingular | camelCase}}DBTypes, true, "{{.ForeignColumn}}")
{{if .Nullable -}}
a.{{.Column | titleCase}}.Valid = true
{{- end}}
{{- if .ForeignColumnNullable -}}
b.{{.ForeignColumn | titleCase}}.Valid = true
c.{{.ForeignColumn | titleCase}}.Valid = true
{{- end}}
{{if not .ToJoinTable -}}
b.{{$rel.Function.ForeignAssignment}} = a.{{$rel.Function.LocalAssignment}}
c.{{$rel.Function.ForeignAssignment}} = a.{{$rel.Function.LocalAssignment}}
if err := b.InsertX(tx); err != nil {
{{- end}}
if err = b.InsertX(tx); err != nil {
t.Fatal(err)
}
if err := c.InsertX(tx); err != nil {
if err = c.InsertX(tx); err != nil {
t.Fatal(err)
}
{{if .ToJoinTable -}}
_, err = tx.Exec(`insert into {{.JoinTable}} ({{.JoinLocalColumn}}, {{.JoinForeignColumn}}) values ($1, $2)`, a.{{.Column | titleCase}}, b.{{.ForeignColumn | titleCase}})
if err != nil {
t.Fatal(err)
}
_, err = tx.Exec(`insert into {{.JoinTable}} ({{.JoinLocalColumn}}, {{.JoinForeignColumn}}) values ($1, $2)`, a.{{.Column | titleCase}}, c.{{.ForeignColumn | titleCase}})
if err != nil {
t.Fatal(err)
}
{{end}}
{{$varname := $rel.ForeignTable.NamePluralGo | toLower -}}
{{$varname}}, err := a.{{$rel.Function.Name}}X(tx)
if err != nil {
t.Fatal(err)
}
bFound, cFound := false, false
for _, v := range {{$varname}} {

View file

@ -4,10 +4,7 @@
{{- range .Table.FKeys -}}
{{- $rel := textsFromForeignKey $dot.Tables $dot.Table . -}}
func Test{{$rel.LocalTable.NameGo}}ToOne{{$rel.ForeignTable.NameGo}}_{{$rel.LocalTable.ColumnNameGo}}(t *testing.T) {
tx, err := boil.Begin()
if err != nil {
t.Fatal(err)
}
tx := MustTx(boil.Begin())
defer tx.Rollback()
var foreign {{$rel.ForeignTable.NameGo}}

View file

@ -59,39 +59,6 @@ func textsFromForeignKey(tables []bdb.Table, table bdb.Table, fkey bdb.ForeignKe
return r
}
/*
{{- $localTable := .Table.Name | singular | titleCase -}}
{{- $localColumn := .Column | remove "_id" | singular | titleCase -}}
{{- $foreignColumn := .ForeignColumn | remove "_id" | singular | titleCase -}}
{{- $foreignTable := .ForeignTable | singular | titleCase -}}
{{- $varname := .ForeignTable | singular | camelCase -}}
func {{$localTable}}ToOne{{$foreignTable}}_{{$localColumn}}(t *testing.T) {
tx, err := boil.Begin()
if err != nil {
t.Fatal(err)
}
defer tx.Rollback()
local := &{{$localTable}}{}
foreign := &{{$foreignTable}}{}
if err := local.InsertX(tx); err != nil {
t.Fatal(err)
}
{{if and .Nullable .ForeignColumnNullable -}}
foreign.{{.ForeignColumn | titleCase}} = local.{{.Column | titleCase}}
{{- else if .Nullable -}}
foreign.{{.ForeignColumn | titleCase}} = local.{{.Column | titleCase}}
{{- else if .ForeignColumnNullable -}}
{{- end}}
if err := foreign.InsertX(tx); err != nil {
t.Fatal(err)
}
checkForeign, err := local.{{$localColumn}}()
*/
// RelationshipToManyTexts contains text that will be used by templates.
type RelationshipToManyTexts struct {
LocalTable struct {