Skip to content

Releases: mickamy/seeder

v0.0.5

31 May 01:30
853ceaf

Choose a tag to compare

Changelog

Features

Bug fixes

  • 1974f88 fix(infer): silence lint on sv locale dictionary and test package

v0.0.4

28 May 06:49
ca0d691

Choose a tag to compare

Changelog

Others

v0.0.3

24 May 10:22
c040892

Choose a tag to compare

Changelog

Features

  • 96b4576 feat(generator): bound default json/jsonb output to a small fixed-key object

Documentation

  • bd4f4ce docs(readme): add CI, Go Report Card, license, and sponsor shields

Others

  • eae45f1 chore: drop seeder.yaml version field, expand config reference
  • 5b4c517 chore: rename yml to yaml
  • 0e418bf style(cli): apply gofmt after dropping Version field
  • e297f97 test(generator): use checked type assertion in JSON shape test

v0.0.2

23 May 05:21
2fa03b3

Choose a tag to compare

Changelog

Features

  • 4bdf27a feat(insert): dedupe composite UNIQUE tuples while seeding
  • 12e13c8 feat(insert): name the failing constraint in composite UNIQUE collision errors
  • e7f4d1b feat(insert): skip generated columns in planColumns
  • 5ee8c03 feat(introspect): expose column character_maximum_length
  • 567df08 feat(introspect): expose composite UNIQUE constraints
  • 8f32270 feat(introspect): expose generated columns

Bug fixes

  • 53a3292 fix(generator,infer): bound int generators to declared DataType range
  • f0115e0 fix(infer): respect MaxLength in base string generators
  • 681c35c fix(infer): respect column MaxLength in UNIQUE wrap
  • 82f687a fix(infer): start counterString at a faker-seeded offset for append safety
  • 4069de2 fix(infer): switch counterString alphabet to case-fold-safe base36
  • 7022c7b fix(infer): truncate uniqueGenericString by runes and guarantee UUID suffix
  • 485701b fix(infer): widen counterString to base62 so narrow varchar UNIQUE columns hold larger row sets
  • 6a34eaa fix(insert): chunk MySQL bulk inserts to stay under the placeholder cap
  • 08e0495 fix(insert): error on overrides targeting generated columns and broaden errNoWritableColumns wording
  • 1a4a526 fix(insert): guard BulkInsert against zero-column and oversized column lists
  • 808b1f0 fix(insert): length-prefix compositeKey segments to dodge separator collisions
  • 1ea2b24 fix(insert): skip composite UNIQUE dedup for tuples with NULL participants
  • 91f27be fix(introspect): mark single-column primary key as IsUnique to prevent value collisions
  • 1090ad4 fix(introspect): narrow MySQL IsGenerated to VIRTUAL/STORED, excluding DEFAULT_GENERATED

Performance

  • e8a37cb perf(infer): trim strings to MaxLength in a single pass
  • abfa162 perf(insert): resolve composite UNIQUE columns via name->index map

Documentation

  • 407048c docs(infer): clarify uniqueEmailString counter-fallback boundary
  • f020c3a docs(infer): note counterSpace uint64 cap on wide-column cardinality
  • 1878e95 docs(infer): update unique-string fallback comments to base62 counter
  • 8672ff2 docs(insert): note UNIQUE constraints on generated columns are left to the DB
  • 1341cf5 docs(insert): note compositeKeyForRow assumes default NULLS DISTINCT UNIQUE
  • 0b3ea02 docs(insert): note that planColumns skips generated columns unconditionally
  • 3d8010d docs(introspect): clarify MaxLength is zero for unlimited types like text
  • 48d1abc docs(introspect): note pgTablesQuery requires Postgres 12+ for is_generated
  • bab56c0 docs(introspect): refresh mysql UNIQUE query comment after fetchUniques rename
  • c7ee62c docs(introspect): refresh postgres UNIQUE query comment after fetchUniques rename
  • 8512ffc docs(readme): align Postgres CI wording with the pinned image (15)

Others

  • 43e5a6a build(compose,ci): pin Postgres to minimum supported version (15)
  • 18387ad chore(compose): expand demo schema to cover v0.2+ features
  • 2a86668 chore(introspect): bump cacheVersion for PK-IsUnique inference change
  • ca4dfae chore: declare PostgreSQL 15+ / MySQL 8.4+ as supported versions
  • 1a2754a ci: matrix-test integration tests across Postgres 15-18 and MySQL 8.4/9
  • d532560 test(insert): exercise BulkInsert chunking against the real MySQL placeholder cap
  • b5ac92c test(introspect): assert MySQL column MaxLength in integration test
  • e3a4bee test(introspect): assert Postgres column MaxLength in integration test

v0.0.1

21 May 03:26
5c0976f

Choose a tag to compare

Changelog

Features

  • 1bd07a9 feat(cli): wire --config and --verbose flags
  • 7215828 feat(cli): wire pipeline, add --exclude and orphan-FK preflight
  • 57c76bf feat(compose): add MySQL dogfood schema
  • 564e09f feat(config): introduce seeder.yaml parser package
  • 666944b feat(config): support per-column yaml overrides
  • ccb407c feat(dsn): recognize mysql scheme and convert to driver format
  • 8f68d26 feat(generator): add gofakeit-based Kind dispatch with type fallback
  • 1d82999 feat(infer): add Explain for verbose inference reporting
  • e5cb01f feat(infer): add UNIQUE-aware wrap and Image-placeholder rule
  • eba9121 feat(infer): pick generator by column name with Kind fallback
  • cb16d0d feat(infer,cli): add --locale ja for Japanese-aware fake data
  • 010a971 feat(insert): accept per-table rows, verbose output, value Table
  • 368de88 feat(insert): add MySQL driver
  • 8f67e81 feat(insert): add bulk insert via pgx CopyFrom behind Driver interface
  • a8900cb feat(insert): batch insertion + LRU pool with --batch-size flag
  • da170f3 feat(insert): rework planColumns for raw default and forward-referenced self-FK
  • 7fa14e9 feat(insert,config,cli): polymorphic FK, alternate outputs, and CDC stream
  • 99584f9 feat(insert,introspect): pick composite FK targets as a single tuple
  • 0378c2a feat(introspect): add Kind.String and convert Schema to value types
  • bd62a22 feat(introspect): add MySQL driver
  • a7f9d65 feat(introspect): add Postgres schema introspection with Kind via Driver
  • 909086a feat(introspect): cache introspected schema with --cache flag
  • 7f508d8 feat(introspect): expose raw column_default and single-column UNIQUE
  • ad4f31f feat(plan): add BuildWithDeps for non-FK ordering hints
  • 95aea26 feat(plan): topologically sort tables by FK dependency

Bug fixes

  • c56cd1a fix(cli): detect unknown table names in seeder.yaml
  • a3748e0 fix(cli): handle --version/--help when arguments are reordered
  • 0c5c2a1 fix(cli): reject negative --seed with a usage error
  • d34a831 fix(cli): treat unknown columns as NOT NULL in orphan FK preflight
  • 7baf077 fix(cli,insert): make --seed 0 deterministic via optional pointer
  • 89cf744 fix(config): reject duplicate polymorphic type_col / id_col within a table
  • 54ad187 fix(config): reject non-scalar yaml values in column overrides
  • fc34b3c fix(dsn): decode URI userinfo and escape @ in MySQL driver DSN
  • d49bce1 fix(dsn): drop @-escape in password; driver splits on last @
  • 68a62d3 fix(dsn): list both postgres and postgresql in scheme error messages
  • 029c805 fix(dsn): validate ToMySQLDSN input (scheme/host/database)
  • b718688 fix(generator): emit []byte for KindBytes so bytea COPY succeeds
  • 07b6a57 fix(infer): gate name rules by Kind so type mismatch falls back
  • 35ee49f fix(infer): keep image URLs valid and bound int range under UNIQUE
  • 2e3b8bf fix(infer): route prefecture columns to State rule, not Country
  • a52ab65 fix(infer): start UNIQUE-aware int counter at 1 for tinyint/smallint
  • 03389af fix(insert): detect FKs before int-default skip and ignore empty overrides
  • 62f394d fix(insert): emit OVERRIDING SYSTEM VALUE for Postgres IDENTITY inserts in --output sql
  • 02a2f11 fix(insert): error out when a table has no writable columns
  • 1d05229 fix(insert): filter inBatch rows by FK referenced columns in pickSelfFKRow
  • fe0f3df fix(insert): let column overrides win over the int-with-default skip
  • 175dbbd fix(insert): list postgresql:// in the --output=sql DSN scheme error
  • 88bd5d7 fix(insert): mirror override precedence in explainColumn verbose output
  • b60b077 fix(insert): populate FK pool for UNIQUE non-PK referenced columns
  • a8cf373 fix(insert,cli): address Copilot review on polymorphic validation, output mode, time format, and rate doc
  • d5372b5 fix(insert,cli): keep stream pool across ticks and reject --output with --dry-run
  • 393c591 fix(insert,cli): split --output stdout from progress, bound output buffers, harden MySQL escapes and PK uniqueness
  • 3d5e5ec fix(introspect): describe enum escape in prose to dodge gofmt rewrite
  • 2f64656 fix(introspect): key MySQL UNIQUE constraints by (table, name)
  • 487a757 fix(introspect): make Column.Default a *string to keep NULL distinct from empty
  • b2ad26f fix(introspect): pair composite FK columns via pg_constraint ordinality
  • b0e1409 fix(introspect): rewrite enum escape comment to bypass gofmt typographic rewrite
  • 1026367 fix(introspect): use os.CreateTemp for cache write to avoid stale tmp collisions
  • 6143ad2 fix(introspect,insert): list postgresql in supported schemes error
  • bfeabe6 fix(matchers): use reflect.DeepEqual for safe Equal compares
  • aa5dd7a fix(mysql): harden Truncate FK restore and broaden kind detection
  • 8ecfe9c fix(test): filter base tables and quote identifiers in MySQL reset helper
  • b093e6d fix(tsql): add doc.go so the package is visible to non-integration builds
  • d6042cc fix(tsql): pin a single connection so FOREIGN_KEY_CHECKS=0 covers reset DROPs
  • 5cd776f fix: align seeder.example.yaml with dogfood schema

Performance

  • 0ebb3e7 perf(infer): hoist phoneJA prefixes to package-level var
  • fa2e738 perf(insert): cap in-batch self-FK buffer at 100k entries
  • 49500ac perf(insert): only append self-FK-referenced columns to inBatch

Refactor

  • afc377f Revert "refactor(test): pass Seed via &seed instead of new(uint64(42))"
  • 13099ce refactor(cli): use slices.Sort for codebase consistency
  • 0f0333c refactor(insert): clarify self-FK error wording and rename lookupOwnPK to lookupOwnRef
  • a8b0a66 refactor(insert): document Pool zero-value and tail-trim semantics
  • 28d1d6a refactor(insert): hold FK pool as row tuples
  • 93750be refactor(introspect): inline enum labels into Column (drop Schema.Enums)
  • ed7cdf5 refactor(test): pass Seed via &seed instead of new(uint64(42))
  • 38f67f5 refactor(test): rename testutil package to tsql
  • 499f329 refactor(test): share MySQL reset helper via internal/testutil

Documentation

  • 3600d16 docs(cli): align --seed flag wording with the implementation
  • 9d5c2ac docs(copilot): document that Go regexp supports lazy quantifiers
  • 41f98a4 docs(copilot): document that new(value) is valid Go 1.26 syntax
  • 725deed docs(example): correct preflight discovery hint for generators
  • fbcdebd docs(introspect): align UNIQUE query comments with helper behavior
  • aac7e2b docs(introspect): note that postgres constraint names are schema-unique
  • f1104e7 docs(readme): add Homebrew tap and Windows zip install instructions
  • 318a38e docs(readme): correct preflight discovery hint for generators
  • 2fbc096 docs(readme): describe overridden defaults, UNIQUE-aware, image, and self-FK
  • a9fba46 docs(readme): detect Windows arch in install snippet and clarify PATH step
  • ebe0b37 docs(readme): document --batch-size, --cache, and bounded memory
  • 8c84318 docs(readme): document MySQL support
  • 46ce751 docs(readme): document polymorphic FK, --output, and --stream
  • e74ec8c docs(readme): document seeder.yaml configuration
  • 096ad43 doc...
Read more