53 lines
2.0 KiB
Plaintext
53 lines
2.0 KiB
Plaintext
TODO: soft-deletion
|
|
- GetXyzByID should include `ErrItemIsDeleted` if item is soft-deleted
|
|
|
|
IDEA: migrations-table
|
|
- Store migrations in a table. This makes the schema more self-documenting.
|
|
- Possible schema: name, sql_up, sql_down, hash (computed from those fields plus previous migration hash)
|
|
- or just rowid instead of hash? Migration sequence should be immutable after publishing, so there should never be "conflicts"
|
|
|
|
TODO: language-server-for-TODO.txt
|
|
|
|
TODO: auto-migration-checker
|
|
- Use `pkg/schema` to test whether a base schema plus a migration equals a new schema
|
|
|
|
TODO: codegen SaveXyz update path doesn't check foreign keys
|
|
- Insert path has FK error handling, but the update path wraps everything in Must
|
|
- An update that violates an FK constraint will panic instead of returning an error
|
|
|
|
TODO: generated test file inclues global test DB setup, which is wrong
|
|
|
|
TODO: join-tables
|
|
- handle codegen for without rowid tables properly
|
|
- add "get all X for Y"
|
|
- Example: `chat_pinned_messages`
|
|
|
|
TODO: consider CreateDB and CreateMemoryDB
|
|
|
|
TODO: generate tests for the remaining CRUD, try to hit ~100% default test coverage
|
|
|
|
TODO: test reporter
|
|
- coverage: https://x.com/wispem_wantex/status/2009799380648505563
|
|
- Jest shows for each file: % of lines, functions, branches and statements covered
|
|
- Go reporter should show:
|
|
- group coverage stats by either function, file or package
|
|
- count by statements, branches or functions
|
|
- Show both raw count and percentage
|
|
- list which lines / branches / functions were missed
|
|
- pretty (terminal) format or JSON format
|
|
|
|
TODO: foreign key to compound-FK table
|
|
- sample: booru_post_tag_votes
|
|
|
|
TODO: crap score
|
|
|
|
TODO: MakeSaveItem() fixture factory
|
|
|
|
TODO: better schema parsing with less weird views
|
|
- omp --resume 01a0ef0b-9452-7000-a63a-6d5cabf07646
|
|
|
|
TODO: sqlite row-level locking
|
|
- https://chatgpt.com/c/6ace6870-bf10-83e8-8e0c-98569ae9303f
|
|
|
|
TODO: `ops/gas_init_test.sh` "gas generate item_to_item --test"
|