- Define version in workspace.package, inherit in all crates
- Rename MCP binary from sqlx-record-expert to sqlx-record-mcp
- Add clap for --version and --help support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add skill docs for batch ops, pagination, soft delete, transactions
- Update sqlx-entity.md with new attributes and methods
- Update sqlx-record.md with quick reference for all features
- Update MCP server with new feature documentation resources
- Fix .gitignore paths for renamed directories
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New features:
- #[soft_delete] attribute with delete/restore/hard_delete methods
- #[created_at] auto-set on insert (milliseconds timestamp)
- #[updated_at] auto-set on every update (milliseconds timestamp)
- insert_many(&pool, &[entities]) for batch inserts
- upsert(&pool) / insert_or_update(&pool) for ON CONFLICT handling
- Page<T> struct with paginate() method for pagination
- find_partial() for selecting specific columns
- transaction! macro for ergonomic transaction handling
- PageRequest struct with offset/limit helpers
Technical changes:
- Added pagination.rs and transaction.rs modules
- Extended EntityField with is_soft_delete, is_created_at, is_updated_at
- Added generate_soft_delete_impl for delete/restore/hard_delete methods
- Upsert uses ON DUPLICATE KEY UPDATE (MySQL), ON CONFLICT DO UPDATE (Postgres/SQLite)
- Index hints supported in pagination and find_partial (MySQL)
All three database backends (MySQL, PostgreSQL, SQLite) tested and working.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New features:
- UpdateExpr: Advanced updates with column arithmetic (Add, Sub, Mul, Div, Mod),
CASE/WHEN conditionals, AddIf/SubIf, Coalesce, Greatest, Least, and raw SQL
- ConnProvider: Flexible borrowed/owned connection management
- lookup_table! and lookup_options! macros for type-safe lookup tables
- new_uuid() for time-ordered UUIDs with better database indexing
- MCP server (sqlx-record-expert) with documentation tools and resources
- Claude Code skills for all features
Improvements:
- Fixed Postgres/SQLite unsigned integer binding (cast to signed)
- Added From implementations for all integer types to Value
- Added param_count() to Filter for expression parameter counting
- Added bind_all_values() for proper expression binding order
All three database backends (MySQL, PostgreSQL, SQLite) build and work correctly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Renamed project from entity-changes to sqlx-record
- Renamed derive crate from entity-update_derive to sqlx-record-derive
- Renamed CLI tool from entity-changes-ctl to sqlx-record-ctl
- Renamed Condition to Filter (condition.rs -> filter.rs)
- Renamed condition_or/condition_and/conditions macros to filter_or/filter_and/filters
- Added multi-database support via feature flags:
- mysql: MySQL support
- postgres: PostgreSQL support (with $1, $2 placeholders)
- sqlite: SQLite support
- Updated query generation for database-specific syntax:
- Placeholder styles (? vs $1)
- Table quoting (` vs ")
- COUNT expressions
- ILIKE handling
- Version increment (IF vs CASE WHEN)
- Updated CLI tool for all three databases
- Updated documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>