Configuración de la base de datos

Visión general de las opciones de configuración de la Base de Datos Nette.

Si no está utilizando todo el framework, sino sólo esta librería, lea cómo cargar la configuración.

Conexión única

Configurar una única conexión a la base de datos:

database:
	# DSN, only mandatory key
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Crea servicios del tipo Nette\Database\Connection y también Nette\Database\Explorer para la capa Database Explorer. La conexión a la base de datos se suele pasar por autocableado; si no es posible, utiliza los nombres de servicio @database.default.connection resp. @database.default.explorer.

Otros ajustes:

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'

La clave options puede contener otras opciones que se pueden encontrar en la documentación del controlador PDO, tales como:

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

Conexiones Múltiples

En la configuración podemos definir más conexiones a bases de datos dividiéndolas en secciones con nombre:

database:
	main:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user: root
		password: password

	another:
		dsn: 'sqlite::memory:'

Cada conexión definida crea servicios que incluyen el nombre de la sección en su nombre, es decir @database.main.connection & @database.main.explorer y además @database.another.connection & @database.another.explorer.

El autocableado sólo está activado para los servicios de la primera sección. Esto puede cambiarse con autowired: false o autowired: true. Los servicios no autocableados se pasan por nombre:

services:
	- UserFacade(@database.another.connection)
versión: 4.0