Διαμόρφωση της βάσης δεδομένων
Επισκόπηση των επιλογών διαμόρφωσης για τη βάση δεδομένων 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)