{"id":18350267,"url":"https://github.com/kachit/gorm-seeder","last_synced_at":"2025-04-06T10:32:10.797Z","repository":{"id":44431695,"uuid":"487882320","full_name":"Kachit/gorm-seeder","owner":"Kachit","description":"Gorm seeder package","archived":false,"fork":false,"pushed_at":"2022-11-20T14:30:08.000Z","size":32,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-21T09:33:38.271Z","etag":null,"topics":["database","golang","gorm","seeder"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kachit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-02T14:47:21.000Z","updated_at":"2024-01-30T11:33:09.000Z","dependencies_parsed_at":"2023-01-23T02:45:17.138Z","dependency_job_id":null,"html_url":"https://github.com/Kachit/gorm-seeder","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kachit%2Fgorm-seeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kachit%2Fgorm-seeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kachit%2Fgorm-seeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kachit%2Fgorm-seeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kachit","download_url":"https://codeload.github.com/Kachit/gorm-seeder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247470221,"owners_count":20944143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","golang","gorm","seeder"],"created_at":"2024-11-05T21:25:54.724Z","updated_at":"2025-04-06T10:32:10.321Z","avatar_url":"https://github.com/Kachit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Gorm seeder\n[![Build Status](https://app.travis-ci.com/Kachit/gorm-seeder.svg?branch=master)](https://app.travis-ci.com/Kachit/gorm-seeder)\n[![Codecov](https://codecov.io/gh/Kachit/gorm-seeder/branch/master/graph/badge.svg)](https://codecov.io/gh/Kachit/gorm-seeder)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kachit/gorm-seeder)](https://goreportcard.com/report/github.com/kachit/gorm-seeder)\n[![Version](https://img.shields.io/github/go-mod/go-version/Kachit/gorm-seeder)](https://go.dev/doc/go1.14)\n[![Release](https://img.shields.io/github/v/release/Kachit/gorm-seeder.svg)](https://github.com/Kachit/gorm-seeder/releases)\n[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/kachit/gorm-seeder/blob/master/LICENSE)\n[![GoDoc](https://pkg.go.dev/badge/github.com/kachit/gorm-seeder)](https://pkg.go.dev/github.com/kachit/gorm-seeder)\n[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go#third-party-apis)\n\n## Description\nSimple Gorm seeder package\n\n## Download\n```shell\ngo get -u github.com/kachit/gorm-seeder\n```\n\n## Usage\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/kachit/gorm-seeder\"\n    \"gorm.io/driver/postgres\"\n    \"gorm.io/gorm\"\n    \"time\"\n)\n\n//Init model\ntype User struct {\n    Id          uint64 `json:\"id\" gorm:\"primaryKey\"`\n    Name        string `json:\"name\"`\n    Email        string `json:\"email\"`\n    Password       string `json:\"password\"`\n    CreatedAt  time.Time      `json:\"created_at\"`\n}\n\nfunc (u *User) BeforeCreate(tx *gorm.DB) (err error) {\n    u.CreatedAt = time.Now().UTC()\n    return\n}\n\n// TableName overrides\nfunc (User) TableName() string {\n    return \"users\"\n}\n\n//Create new seeder instance of gorm_seeder.SeederInterface\ntype UsersSeeder struct {\n    gorm_seeder.SeederAbstract\n}\n\nfunc NewUsersSeeder(cfg gorm_seeder.SeederConfiguration) UsersSeeder {\n    return UsersSeeder{gorm_seeder.NewSeederAbstract(cfg)}\n}\n\n//Implement Seed method\nfunc (s *UsersSeeder) Seed(db *gorm.DB) error {\n    var users []User\n    for i := 0; i \u003c s.Configuration.Rows; i++ {\n        indexStr := fmt.Sprint(i)\n        user := User{\n            Name: \"Name LastName\" + indexStr,\n            Email: \"foo\" + indexStr + \"@bar.gov\",\n            Password: \"password-hash-string\" + indexStr,\n        }\n        users = append(users, user)\n    }\n    return db.CreateInBatches(users, s.Configuration.Rows).Error\n}\n\n//Implement Clear method\nfunc (s *UsersSeeder) Clear(db *gorm.DB) error {\n    entity := User{}\n    return s.SeederAbstract.Delete(db, entity.TableName())\n}\n\nfunc main(){\n    //Init DB connection\n    db, _ := gorm.Open(postgres.New(postgres.Config{\n        DSN: \"DSN connection string\",\n    }))\n\n    //Build seeders stack\n    usersSeeder := NewUsersSeeder(gorm_seeder.SeederConfiguration{Rows: 10})\n    seedersStack := gorm_seeder.NewSeedersStack(db)\n    seedersStack.AddSeeder(\u0026usersSeeder)\n\n    //Apply seed\n    err := seedersStack.Seed()\n    fmt.Println(err)\n\n    //Apply clear\n    err = seedersStack.Clear()\n    fmt.Println(err)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkachit%2Fgorm-seeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkachit%2Fgorm-seeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkachit%2Fgorm-seeder/lists"}