# sqlc-gen-better-python > A sqlc plugin that generates modern, type-safe Python database code from SQL. ## Documentation - [Getting Started](https://sqlc-gen-better-python.rayakame.dev/docs/getting-started/): From an empty project to your first typed queries. Pick your driver in the tabs below and the whole … ### Guide - [Configuration](https://sqlc-gen-better-python.rayakame.dev/docs/guide/configuration/): Everything the plugin does is driven by your sqlc.yaml. This page covers how the plugin is wired in … - [Drivers](https://sqlc-gen-better-python.rayakame.dev/docs/guide/drivers/): The sql_driver option picks which database library the generated code targets. It must match your … - [Model types](https://sqlc-gen-better-python.rayakame.dev/docs/guide/model-types/): The model_type option controls what kind of class the plugin generates for each table. All four … - [Writing queries](https://sqlc-gen-better-python.rayakame.dev/docs/guide/writing-queries/): Each query .sql file becomes one Python module, and each annotated query in it becomes one typed … - [Enums](https://sqlc-gen-better-python.rayakame.dev/docs/guide/enums/): PostgreSQL enum types and MySQL inline ENUM(...) columns become enum.StrEnum classes in a generated … - [Type overrides](https://sqlc-gen-better-python.rayakame.dev/docs/guide/type-overrides/): An override replaces the Python type the plugin would pick for a column with one of your own. You … - [Converters](https://sqlc-gen-better-python.rayakame.dev/docs/guide/converters/): A type override replaces a column’s Python type, but it converts by calling that type … - [Working with JSON](https://sqlc-gen-better-python.rayakame.dev/docs/guide/working-with-json/): A json/jsonb column maps to str by default - correct, but untyped: you get a string and parse it … - [Docstrings](https://sqlc-gen-better-python.rayakame.dev/docs/guide/docstrings/): The plugin can document everything it generates - models, enums, and query functions - in the … - [SQLite type conversion](https://sqlc-gen-better-python.rayakame.dev/docs/guide/sqlite-type-conversion/): SQLite only stores a handful of native types, so dates, decimals, booleans and blobs have to be … - [Naming and identifiers](https://sqlc-gen-better-python.rayakame.dev/docs/guide/naming/): SQL identifiers are not always valid Python names, and SQL naming conventions are not … ### Reference - [Configuration options](https://sqlc-gen-better-python.rayakame.dev/docs/reference/configuration-options/): Every option the plugin accepts, set under options: in the plugin’s codegen block. See … - [Type mappings](https://sqlc-gen-better-python.rayakame.dev/docs/reference/type-mappings/): How the plugin maps SQL types to Python types, per engine. These are the built-in defaults; a type … - [Feature support](https://sqlc-gen-better-python.rayakame.dev/docs/reference/feature-support/): Which sqlc features and query commands the plugin supports. Macros Every sqlc macro is supported … --- Generated on 2026-08-17 06:51:25 UTC Site: https://sqlc-gen-better-python.rayakame.dev/