Skip to content

Data Seeder

Seeds a database component with data before tasks run. Seeders without dependsOn run in parallel. Use dependsOn to chain seeders that must run in a specific order.

FieldTypeRequiredDescription
targetNamestringYesName of the database component to seed
filestringNoPath to a SQL file, relative to repo root
urlstringNoURL to an external dataset
targetTablestringNoTarget table (required for some dataset formats)
namestringNoUnique name. Required when referenced in another seeder’s dependsOn
dependsOnstring[]NoList of seeder name values that must complete before this one runs

Either file or url must be set. Only seeders with a name field can be referenced in dependsOn.

All seeders run in parallel (no dependencies):

[[dataseeder]]
url = "https://example.com/users.csv"
targetName = "db"
targetTable = "users"
[[dataseeder]]
url = "https://example.com/products.csv"
targetName = "db"
targetTable = "products"

Linear chain — schema must complete before products, products before reviews:

[[dataseeder]]
name = "seed-schema"
file = ".nurburgdev/schema.sql"
targetName = "db"
[[dataseeder]]
name = "seed-products"
url = "https://example.com/products.csv"
targetName = "db"
targetTable = "products"
dependsOn = ["seed-schema"]
[[dataseeder]]
name = "seed-reviews"
url = "https://example.com/reviews.csv"
targetName = "db"
targetTable = "product_reviews"
dependsOn = ["seed-products"]

Fan-in — two independent seeders must complete before a third:

[[dataseeder]]
name = "seed-users"
url = "https://example.com/users.csv"
targetName = "db"
targetTable = "users"
[[dataseeder]]
name = "seed-products"
url = "https://example.com/products.csv"
targetName = "db"
targetTable = "products"
[[dataseeder]]
name = "seed-orders"
url = "https://example.com/orders.csv"
targetName = "db"
targetTable = "orders"
dependsOn = ["seed-users", "seed-products"]