Nette Documentation Preview

syntax
Διαμόρφωση της βάσης δεδομένων
******************************

.[perex]
Επισκόπηση των επιλογών διαμόρφωσης για τη βάση δεδομένων Nette.

Αν δεν χρησιμοποιείτε ολόκληρο το πλαίσιο, αλλά μόνο αυτή τη βιβλιοθήκη, διαβάστε [πώς να φορτώσετε τη διαμόρφωση |bootstrap:].


Ενιαία σύνδεση .[#toc-single-connection]
----------------------------------------

Διαμορφώστε μια ενιαία σύνδεση βάσης δεδομένων:

```neon
database:
	# DSN, μόνο υποχρεωτικό κλειδί
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...
```

Δημιουργεί υπηρεσίες τύπου `Nette\Database\Connection` και επίσης `Nette\Database\Explorer` για το επίπεδο [Database Explorer |explorer]. Η σύνδεση με τη βάση δεδομένων συνήθως περνάει με [αυτόματη καλωδίωση |dependency-injection:autowiring], αν αυτό δεν είναι δυνατό, χρησιμοποιήστε τα ονόματα υπηρεσιών `@database.default.connection` ή `@database.default.explorer`.

Άλλες ρυθμίσεις:

```neon
database:
	# εμφανίζει πίνακα βάσεων δεδομένων στο Tracy Bar?
	debugger: ...     # (bool) προεπιλογή true

	# εμφανίζει το ερώτημα EXPLAIN στο Tracy Bar?
	explain: ...      # (bool) προεπιλογή σε true

	# για να ενεργοποιήσει την αυτόματη καλωδίωση για αυτή τη σύνδεση?
	autowired: ...    # (bool) εξ ορισμού true για την πρώτη σύνδεση

	# συμβάσεις πίνακα: ανακάλυψη, στατικό ή όνομα κλάσης
	conventions: discovered  # (string) προεπιλογή 'discovered'.

	options:
		# να συνδέεται στη βάση δεδομένων μόνο όταν χρειάζεται;
		lazy: ...     # (bool) προεπιλογή σε false

		# Κλάση προγράμματος οδήγησης βάσης δεδομένων PHP
		driverClass:  # (string)

		# μόνο MySQL: ορίζει sql_mode
		sqlmode:      # (string)

		# μόνο MySQL: ορίζει SET NAMES
		charset:      # (string) προεπιλογή 'utf8mb4' ('utf8' πριν την έκδοση v5.5.3)

		# μόνο Oracle και SQLite: μορφή ημερομηνίας
		formatDateTime: # (string) προεπιλογή 'U'
```

Το κλειδί `options` μπορεί να περιέχει και άλλες επιλογές που μπορείτε να βρείτε στην [τεκμηρίωση του προγράμματος οδήγησης PDO |https://www.php.net/manual/en/pdo.drivers.php], όπως:

```neon
database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true
```


Πολλαπλές συνδέσεις .[#toc-multiple-connections]
------------------------------------------------

Στη διαμόρφωση μπορούμε να ορίσουμε περισσότερες συνδέσεις βάσης δεδομένων χωρίζοντάς τες σε ονομαστικές ενότητες:

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

	another:
		dsn: 'sqlite::memory:'
```

Κάθε καθορισμένη σύνδεση δημιουργεί υπηρεσίες που περιλαμβάνουν το όνομα του τμήματος στο όνομά τους, δηλαδή `@database.main.connection` & `@database.main.explorer` και περαιτέρω `@database.another.connection` & `@database.another.explorer`.

Η αυτόματη σύνδεση είναι ενεργοποιημένη μόνο για υπηρεσίες από το πρώτο τμήμα. Αυτό μπορεί να αλλάξει με τις επιλογές `autowired: false` ή `autowired: true`. Οι υπηρεσίες που δεν συνδέονται αυτόματα περνούν με το όνομα:

```neon
services:
	- UserFacade(@database.another.connection)
```

Διαμόρφωση της βάσης δεδομένων

Επισκόπηση των επιλογών διαμόρφωσης για τη βάση δεδομένων Nette.

Αν δεν χρησιμοποιείτε ολόκληρο το πλαίσιο, αλλά μόνο αυτή τη βιβλιοθήκη, διαβάστε πώς να φορτώσετε τη διαμόρφωση.

Ενιαία σύνδεση

Διαμορφώστε μια ενιαία σύνδεση βάσης δεδομένων:

database:
	# DSN, μόνο υποχρεωτικό κλειδί
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Δημιουργεί υπηρεσίες τύπου Nette\Database\Connection και επίσης Nette\Database\Explorer για το επίπεδο Database Explorer. Η σύνδεση με τη βάση δεδομένων συνήθως περνάει με αυτόματη καλωδίωση, αν αυτό δεν είναι δυνατό, χρησιμοποιήστε τα ονόματα υπηρεσιών @database.default.connection ή @database.default.explorer.

Άλλες ρυθμίσεις:

database:
	# εμφανίζει πίνακα βάσεων δεδομένων στο Tracy Bar?
	debugger: ...     # (bool) προεπιλογή true

	# εμφανίζει το ερώτημα EXPLAIN στο Tracy Bar?
	explain: ...      # (bool) προεπιλογή σε true

	# για να ενεργοποιήσει την αυτόματη καλωδίωση για αυτή τη σύνδεση?
	autowired: ...    # (bool) εξ ορισμού true για την πρώτη σύνδεση

	# συμβάσεις πίνακα: ανακάλυψη, στατικό ή όνομα κλάσης
	conventions: discovered  # (string) προεπιλογή 'discovered'.

	options:
		# να συνδέεται στη βάση δεδομένων μόνο όταν χρειάζεται;
		lazy: ...     # (bool) προεπιλογή σε false

		# Κλάση προγράμματος οδήγησης βάσης δεδομένων PHP
		driverClass:  # (string)

		# μόνο MySQL: ορίζει sql_mode
		sqlmode:      # (string)

		# μόνο MySQL: ορίζει SET NAMES
		charset:      # (string) προεπιλογή 'utf8mb4' ('utf8' πριν την έκδοση v5.5.3)

		# μόνο Oracle και SQLite: μορφή ημερομηνίας
		formatDateTime: # (string) προεπιλογή 'U'

Το κλειδί options μπορεί να περιέχει και άλλες επιλογές που μπορείτε να βρείτε στην τεκμηρίωση του προγράμματος οδήγησης PDO, όπως:

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

Πολλαπλές συνδέσεις

Στη διαμόρφωση μπορούμε να ορίσουμε περισσότερες συνδέσεις βάσης δεδομένων χωρίζοντάς τες σε ονομαστικές ενότητες:

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

	another:
		dsn: 'sqlite::memory:'

Κάθε καθορισμένη σύνδεση δημιουργεί υπηρεσίες που περιλαμβάνουν το όνομα του τμήματος στο όνομά τους, δηλαδή @database.main.connection & @database.main.explorer και περαιτέρω @database.another.connection & @database.another.explorer.

Η αυτόματη σύνδεση είναι ενεργοποιημένη μόνο για υπηρεσίες από το πρώτο τμήμα. Αυτό μπορεί να αλλάξει με τις επιλογές autowired: false ή autowired: true. Οι υπηρεσίες που δεν συνδέονται αυτόματα περνούν με το όνομα:

services:
	- UserFacade(@database.another.connection)