Skip to content

Reference

Shows how you can use iter to refer to any arbitrary row of any arbitrary column of any arbitrary model, via self.datagen.ModelName().field_name(iter).

Create a file named users.dg:

users.dg
model users {
fields {
id() int
name() string
}
gens {
func id() {
return iter + 1
}
func name() {
return Name()
}
}
}

Create a file named orders.dg in the same directory:

orders.dg
model orders {
fields {
user_id() int
user_name() string
order_count() int
}
gens {
func user_id() {
return self.datagen.users().id(iter)
}
func user_name() {
return self.datagen.users().name(iter)
}
func order_count() {
return IntBetween(0, 10)
}
}
}

With both .dg files in the current directory:

Terminal window
$ datagenc gen . -f csv -n 3
Terminal window
$ cat orders.csv
user_id,user_name,order_count
1,Jordy Bashirian,1
2,Luisa Adams,4
3,Willow Marks,10
Terminal window
$ cat users.csv
id,name
1,Jordy Bashirian
2,Luisa Adams
3,Willow Marks