Part-DB-server/config/packages/doctrine.yaml

88 lines
2.8 KiB
YAML
Raw Normal View History

2019-02-23 16:49:38 +01:00
doctrine:
dbal:
2020-01-07 18:48:34 +01:00
url: '%env(resolve:DATABASE_URL)%'
2023-12-03 23:58:19 +01:00
# Required for DAMA doctrine test bundle
use_savepoints: true
2020-01-07 18:48:34 +01:00
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
2019-02-23 16:49:38 +01:00
types:
# UTC datetimes
datetime:
class: App\Doctrine\Types\UTCDateTimeType
date:
class: App\Doctrine\Types\UTCDateTimeType
datetime_immutable:
class: App\Doctrine\Types\UTCDateTimeImmutableType
date_immutable:
class: App\Doctrine\Types\UTCDateTimeImmutableType
big_decimal:
class: App\Doctrine\Types\BigDecimalType
tinyint:
class: App\Doctrine\Types\TinyIntType
schema_filter: ~^(?!internal)~
# Only enable this when needed
profiling_collect_backtrace: false
2019-02-23 16:49:38 +01:00
orm:
auto_generate_proxy_classes: true
2023-05-27 20:51:05 +02:00
enable_lazy_ghost_objects: true
report_fields_where_declared: true
validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
2025-07-07 23:31:07 +02:00
identity_generation_preferences:
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
2019-02-23 16:49:38 +01:00
auto_mapping: true
controller_resolver:
auto_mapping: true
2019-02-23 16:49:38 +01:00
mappings:
App:
type: attribute
2023-12-03 22:44:55 +01:00
is_bundle: false
2019-02-23 16:49:38 +01:00
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
dql:
string_functions:
2024-06-13 23:18:25 +02:00
regexp: App\Doctrine\Functions\Regexp
2023-07-29 16:42:27 +02:00
field: DoctrineExtensions\Query\Mysql\Field
field2: App\Doctrine\Functions\Field2
natsort: App\Doctrine\Functions\Natsort
array_position: App\Doctrine\Functions\ArrayPosition
ilike: App\Doctrine\Functions\ILike
Add SI-prefix-aware sorting column for parts tableFeature/si value sort (#1344) * Add SI-prefix-aware sorting column for the parts table Adds an optional "Name (SI)" column that parses numeric values with SI prefixes (p, n, u/µ, m, k/K, M, G, T) from part names and sorts by the resulting physical value. This is useful for electronic components where alphabetical sorting produces wrong results — e.g. 100nF, 10pF, 1uF should sort as 10pF < 100nF < 1uF. Implementation: - New SiValueSort DQL function with platform-specific SQL generation for PostgreSQL (POSIX regex), MySQL/MariaDB (REGEXP_SUBSTR), and SQLite (PHP callback registered via the existing middleware). - The regex is start-anchored: only names beginning with a number are matched. Part numbers like "MCP2515" or "Crystal 20MHz" are ignored. - When SI sort is active, NATSORT is appended as a secondary sort so that non-matching parts fall back to natural string ordering instead of appearing in arbitrary order. - The column is opt-in (not in default columns) and displays the parsed float value, or an empty cell for non-matching names. * Rename SI column from "Name (SI)" to "SI Value" The column now shows the parsed numeric value rather than the part name, so the label should reflect that. * Support comma as decimal separator in SI value parsing Part names using European decimal notation (e.g. "4,7 kΩ", "2,2uF") were parsed incorrectly because the regex only recognized dots. Now commas are normalized to dots before parsing, matching the existing pattern used elsewhere in the codebase (PartNormalizer, price providers).
2026-04-15 22:56:34 +02:00
si_value_sort: App\Doctrine\Functions\SiValueSort
2023-02-11 22:27:51 +01:00
when@test:
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
when@prod: &prod
doctrine:
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
when@docker: *prod