sql >> Database >  >> RDS >> Mysql

Wijzig de configuratie van de CakePHP-database globaal

Het bieden van configuratie afhankelijk van de omgeving is een vrij veel voorkomende taak, en er zijn nogal wat andere manieren om dit aan te pakken.

Omgevingsvariabelen

Als de omgeving het toelaat, kunt u omgevingsvariabelen gebruiken. U kunt eenvoudig DB-configuratie opgeven via de DATABASE_URL variabele in de vorm van een DSN-verbindingsreeks zoals

mysql://user:[email protected]/production?encoding=utf8&timezone=UTC&cacheMetadata=true

Kookboek> Configuratie> Omgevingsvariabelen

Extra configuratiebestanden

Een andere optie is om afzonderlijke/extra configuratiebestanden te laden op basis van de huidige omgeving, zodat u alleen die bestanden kunt implementeren die daadwerkelijk nodig zijn voor een specifieke omgeving.

Configure::load('app', 'default', false);
// $enviroment needs to be validated /sanitzied in order to
// avoid loading arbitrary files from the config directory
Configure::load($enviroment, 'default', true);

Kookboek> Configuratie> Extra laden Configuratiebestanden

Verbindingsaliasing

En er is ook verbindingsaliasing, CakePHP doet dat automatisch in de testomgeving. Stel dat u een default . heeft en een production configuratie, dan zou je de production kunnen aliasen verbinding als default in uw productieomgeving, zodat uw code overal de default . probeert te gebruiken verbinding, zal het daadwerkelijk de production . gebruiken een.

\Cake\DataSource\ConnectionManager::alias('production', 'default');

API> \Cake\DataSource\ConnectionManager::alias()




  1. MySQL:Is het mogelijk om een ​​SELECT te 'vullen' met waarden zonder tabel?

  2. Toegang geweigerd voor gebruiker 'root'@'localhost' tijdens een poging om privileges te verlenen. Hoe verleen ik privileges?

  3. Probeer LOAD DATA INFILE te doen met REPLACE en AUTO_INCREMENT

  4. Vloeiend nHibernate configureren met MySQL