Releases: mickamy/seeder
Releases · mickamy/seeder
v0.0.5
v0.0.4
v0.0.3
v0.0.2
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
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...