From d3aae47d2c0ba4d6c8b6b6088904a8c812cf485f Mon Sep 17 00:00:00 2001 From: Matthieu Bessat Date: Tue, 13 Jan 2026 21:41:03 +0100 Subject: [PATCH] docs: still WIP --- README.md | 42 +++++++++++++++------------------ docs/concepts/architecture.md | 0 docs/how-tos/debug_models.md | 0 docs/references/cli.md | 0 docs/references/repositories.md | 0 docs/tutorials/quick_start.md | 31 ++++++++++++++++++++++++ docs/tutorials/relations.md | 1 + 7 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 docs/concepts/architecture.md create mode 100644 docs/how-tos/debug_models.md create mode 100644 docs/references/cli.md create mode 100644 docs/references/repositories.md create mode 100644 docs/tutorials/relations.md diff --git a/README.md b/README.md index f862881..23697a6 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ # [WIP] sqlxgentools -Tools to generate SQL migrations and Rust SQLx repositories code from models structs to use with a SQLite database. +Little tool to generate SQLite migrations files and Rust SQLx repositories code, all from models structs. -Will be used in [minauthator](https://forge.lefuturiste.fr/mbess/minauthator). +Still very much work in progress, but it can be already used in your next Rust app if you don't mind some limitations like the lack of incremental migrations and little quirks here and there. + +## Getting started + +- [Quick start tutorial](./docs/tutorials/quick_start.md) ## Project context @@ -18,10 +22,19 @@ Will be used in [minauthator](https://forge.lefuturiste.fr/mbess/minauthator). - Provide a full a ORM interface +## Included crates + +This project is split into 3 published crates. + +- [`sqlxgentools_cli`](https://crates.io/crates/sqlxgentools_cli), used to parse, generate migrations and repositories. +- [`sqlxgentools_attrs`](https://crates.io/crates/sqlxgentools_attrs), provides proc macros. +- [`sqlxgentools_misc`](https://crates.io/crates/sqlxgentools_misc), provides data types and traits (optional). + ## Features - [x] generate migrations - [x] from scratch + - [ ] incremental migration - [ ] up migration - [ ] down migration - [x] generate repositories @@ -29,27 +42,10 @@ Will be used in [minauthator](https://forge.lefuturiste.fr/mbess/minauthator). - [x] get_by_id - [x] insert - [x] insert_many - - [ ] generate custom by - - [x] co-exist with custom repository + - [x] custom get_by, get_many_by + - [x] get_many_of (from one-to-many relations) -## Usage +## Contributions -### Generate initial CREATE TABLE sqlite migration +Questions, remarks and contributions is very much welcomed. - cargo run --bin sqlx-generator -- ./path/to/project generate-create-migrations > migrations/all.sql - - sqlx-generator \ - -m path/to/models \ - gen-repositories \ - -o path/to/repositories - - sqlx-generator \ - -m path/to/models \ - gen-migrations \ - -o path/to/migrations/all.sql - -### Generate repositories code - -not implemented yet - - cargo run --bin sqlx-generator -- ./path/to/project generate-repositories diff --git a/docs/concepts/architecture.md b/docs/concepts/architecture.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/how-tos/debug_models.md b/docs/how-tos/debug_models.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/references/cli.md b/docs/references/cli.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/references/repositories.md b/docs/references/repositories.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/tutorials/quick_start.md b/docs/tutorials/quick_start.md index c94322a..976eda5 100644 --- a/docs/tutorials/quick_start.md +++ b/docs/tutorials/quick_start.md @@ -6,3 +6,34 @@ Steps: - Generate migrations - Generate repositories - Use repositories in your code + +### CLI installation + +The [sqlxgentools_cli crate](https://crates.io/crates/sqlxgentools_cli) provides the CLI, +it can be installed globally on your machine (or at least your user). + + cargo install sqlxgentools_cli + +### Project installation + +Install the `sqlxgentools_attrs` crate + +### Declare your models + +TODO + +### Generate migrations + +Change directory into your project root. + + sqlx-generator -m path/to/models_module gen-migrations -o path/to/migrations/all.sql + +### Generate repositories + +Change directory into your project root. + + sqlx-generator -m path/to/models_module gen-repositories -o path/to/repositories_module + +### Use the repositories + +TODO diff --git a/docs/tutorials/relations.md b/docs/tutorials/relations.md new file mode 100644 index 0000000..1333ed7 --- /dev/null +++ b/docs/tutorials/relations.md @@ -0,0 +1 @@ +TODO