Overview of configuration options for the Nette Database.
If you are not using the whole framework, but only this library, read how to load the configuration.
Configure a single database connection:
database: # DSN, only mandatory key dsn: "sqlite:%appDir%/Model/demo.db" user: ... password: ...
database: # shows database panel in Tracy Bar? debugger: ... # (bool) defaults to true # shows query EXPLAIN in Tracy Bar? explain: ... # (bool) defaults to true # to enable autowiring for this connection? autowired: ... # (bool) defaults to true for first connection # table conventions: discovered, static, or class name conventions: discovered # (string) defaults to 'discovered' options: # to connect to the database only when needed? lazy: ... # (bool) defaults to false # PHP database driver class driverClass: # (string) # only MySQL: sets sql_mode sqlmode: # (string) # only MySQL: sets SET NAMES charset: # (string) defaults to 'utf8mb4' ('utf8' before v5.5.3) # only Oracle and SQLite: date format formatDateTime: # (string) defaults to 'U'
options key can contain other options that can be found in the PDO driver documentation, such as:
database: options: PDO::MYSQL_ATTR_COMPRESS: true
In the configuration we can define more database connections by dividing them into named sections:
database: main: dsn: 'mysql:host=127.0.0.1;dbname=test' user: root password: password another: dsn: 'sqlite::memory:'
Autowiring is enabled only for services from the first section. This can be changed using
autowired: false or
These services are added to the DI container, where
### represents the connection name:
If we define only one connection, the service names will be
database.default.explorer. If we define multiple connections as in the example above, the names will correspond to
the sections, i.e.
database.main.explorer and then
We pass the non-authenticated services explicitly by referring to their name:
services: - UserFacade(@database.another.connection)