id summary reporter owner description type status priority milestone component version severity resolution keywords cc branch changelog apichanges internalchanges 13118 JSON database columns anonymous "Other Python ORM [https://docs.ponyorm.com/json.html#json-support-in-now support JSON in SQL columns]: > For storing JSON in the database Pony uses the following types: > > * SQLite - TEXT > * [https://www.postgresql.org/docs/current/functions-json.html PostgreSQL] - JSONB (binary JSON) > * [https://dev.mysql.com/doc/refman/5.7/en/json.html MySQL] - JSON (binary JSON, although it doesn’t have ‘B’ in the name) > > Starting with the version 3.9 SQLite provides the [https://sqlite.org/json1.html JSON1] extension module. This extension improves performance when working with JSON queries, although Pony can work with JSON in SQLite even without this module. This can be useful for very flexible, dynamic schemas with user-defined or plugin-managed custom fields, many optional (sparse) fields; array fields that can be easily queried in reports (unlike e.g. Trac's keywords or ticket custom fields) and even nested and associative fields. Trac could also offer such a JSON database column datatype. As a first step it could just provide this for plugins. Maybe it would also be useful to add a `custom JSON` column to Trac objects like milestones to make it easier to add information in plugins. Eventually custom ticket fields could be migrated to be stored like that as well, to make SQL queries for custom fields a simple JSON field access. Maybe this is not viable, but it may be worth looking into further." enhancement closed normal database backend normal wontfix generic tracobject