mirror of
https://github.com/symfony/recipes.git
synced 2026-09-11 15:16:30 +03:00
Add a recipe for DoctrineBundle 2.13
This recipe avoids getting deprecations from the ORM by turning on new settings. For the identity generation precedence, using `identity` is the best choice for new projects (especially when using DBAL 4.x from the start).
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
url: '%env(resolve:DATABASE_URL)%'
|
||||
|
||||
# IMPORTANT: You MUST configure your server version,
|
||||
# either here or in the DATABASE_URL env var (see .env file)
|
||||
#server_version: '16'
|
||||
|
||||
profiling_collect_backtrace: '%kernel.debug%'
|
||||
use_savepoints: true
|
||||
orm:
|
||||
auto_generate_proxy_classes: true
|
||||
enable_lazy_ghost_objects: true
|
||||
report_fields_where_declared: true
|
||||
validate_xml_mapping: true
|
||||
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
||||
identity_generation_preferences:
|
||||
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
|
||||
auto_mapping: true
|
||||
mappings:
|
||||
App:
|
||||
type: attribute
|
||||
is_bundle: false
|
||||
dir: '%kernel.project_dir%/src/Entity'
|
||||
prefix: 'App\Entity'
|
||||
alias: App
|
||||
controller_resolver:
|
||||
auto_mapping: false
|
||||
|
||||
when@test:
|
||||
doctrine:
|
||||
dbal:
|
||||
# "TEST_TOKEN" is typically set by ParaTest
|
||||
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
|
||||
|
||||
when@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
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/",
|
||||
"src/": "%SRC_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"#1": "Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url",
|
||||
"#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
|
||||
"#3": "",
|
||||
"#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
|
||||
"#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4\"",
|
||||
"#6": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4\"",
|
||||
"DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
|
||||
},
|
||||
"dockerfile": [
|
||||
"RUN install-php-extensions pdo_pgsql"
|
||||
],
|
||||
"docker-compose": {
|
||||
"docker-compose.yml": {
|
||||
"services": [
|
||||
"database:",
|
||||
" image: postgres:${POSTGRES_VERSION:-16}-alpine",
|
||||
" environment:",
|
||||
" POSTGRES_DB: ${POSTGRES_DB:-app}",
|
||||
" # You should definitely change the password in production",
|
||||
" POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}",
|
||||
" POSTGRES_USER: ${POSTGRES_USER:-app}",
|
||||
" healthcheck:",
|
||||
" test: [\"CMD\", \"pg_isready\", \"-d\", \"${POSTGRES_DB:-app}\", \"-U\", \"${POSTGRES_USER:-app}\"]",
|
||||
" timeout: 5s",
|
||||
" retries: 5",
|
||||
" start_period: 60s",
|
||||
" volumes:",
|
||||
" - database_data:/var/lib/postgresql/data:rw",
|
||||
" # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!",
|
||||
" # - ./docker/db/data:/var/lib/postgresql/data:rw"
|
||||
],
|
||||
"volumes": ["database_data:"]
|
||||
},
|
||||
"docker-compose.override.yml": {
|
||||
"services": [
|
||||
"database:",
|
||||
" ports:",
|
||||
" - \"5432\""
|
||||
]
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/framework-bundle": "<7.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
* Modify your DATABASE_URL config in <fg=green>.env</>
|
||||
|
||||
* Configure the <fg=green>driver</> (postgresql) and
|
||||
<fg=green>server_version</> (16) in <fg=green>config/packages/doctrine.yaml</>
|
||||
Reference in New Issue
Block a user