Ich muss in meiner Anwendung mehrere Verbindungen zu mehreren Datenbanken, eine für die Entwicklung, eine für Tests und andere für die Produktion festlegen. Ich habe auf Stack-Überlauf einige Tipps gefunden, um per URL zu erhalten und viele und verschiedene Einstellungen zu übergeben, also habe ich es in meiner App verbessert, aber ich habe festgestellt, dass wenn ich versuche, Migrationen laufen, die nicht funktionieren, weil das keine URL hat Passieren, gibt es einen anderen Weg, das zu tun? Oder beabsichtigen Sie, den App-Modus anders als heute zu verwalten? Dies könnte auch Debug als falsch definieren, wenn Produktion oder Test und wahr, wenn Entwicklung.Datenbankverwaltung CakePHP
Antwort
Ich habe etwas wie, in meinem path.php Ich habe APP_MODE Variable als 'Entwicklung' dann in meiner app.php Ich erstelle eine Fall-Option, wenn diese Datenbank entwickeln, und App wird dieses Verhalten haben, wenn 'Tests' Diese Variablen Datenbank und dieses andere Verhalten, wenn 'Produktion' dann ein anderes. Dies hilft mir, viele Zweige für jeden APP_MODE zu erstellen, dann, wenn ich an Tests oder Produktion senden muss, mache ich einfach eine Zusammenführung und dann senden an jenkins deploy es
Überprüfen Sie, was der Hostname Ihres Entwicklungscomputers ist.
Unter Linux oder Windows:
hostname
eine Kopie Ihrer app/config/app.default.php
in eine Datei default
anstelle des Wortes mit dem Host-Namen machen.
Bearbeiten Sie die app/Console/Installer.php
Datei kann die createAppConfig
Funktion wie folgt ändern:
public static function createAppConfig($dir, $io)
{
$appConfig = $dir . '/config/app.php';
$defaultConfigPath = $dir . '/config/app.default.php';
$hostnameConfigPath = $dir . '/config/app.' . gethostname() . '.php';
$defaultConfig = file_exists($hostnameConfigPath) ? $hostnameConfigPath : $defaultConfigPath;
if (!file_exists($appConfig)) {
copy($defaultConfig, $appConfig);
$io->write('Created `config/app.php` file');
}
}
Wenn Sie jetzt composer install
auf Ihrem Projekt ausführen wird es entweder die app.default.php
Konfiguration oder eine andere Konfiguration verwenden, die den Hostnamen des aktuellen Geräts übereinstimmt .
Dies koppelt alle Konfigurationseinstellungen an eine Umgebung oder einen Standard. Das könnte einige Ihrer Probleme lösen, aber wenn Sie Datenbanken auf Ihrer Entwicklungs-Workstation wechseln möchten. Es ist einfacher, die Datei app.php
manuell zu bearbeiten. Wenn Sie etwas komplizierter als das tun müssen.
Nicht schlecht. Ich benutze eine separate Konfigurationsdatei, die ich eine Ebene über dem Webroot und include() von index.php stelle. Platzieren Sie es außerhalb der Webroot bedeutet a) es kann nicht remote zugegriffen werden und b) es ist in der Regel außerhalb Ihrer Quellcodeverwaltung. – JvO
- 1. Datenbankverwaltung
- 2. Datenbankverwaltung
- 3. Multilanguage Datenbankverwaltung mit Laravel
- 4. Kontinuierliche Integration und Datenbankverwaltung
- 5. Remote-Datenbankverwaltung vom lokalen Entwicklungsserver
- 6. Java-basierte Desktop-Anwendung verwalten (Datenbankverwaltung)
- 7. Azure Online SQL Datenbankverwaltung ist nicht verfügbar
- 8. Fehlerbehebung bei der Formularübertragung/Datenbankverwaltung in Django?
- 9. Was ist Atomcity of Transaction in der Datenbankverwaltung?
- 10. CakePHP/CakePHP 2.4 App
- 11. CakePHP ADmad CakePHP-HybridAuth Plugin warf Ausnahme
- 12. CakePHP Klassenkonstruktoren
- 13. cakePHP Formularfehler
- 14. CakePHP textarea
- 15. CakePHP foreach
- 16. CakePHP JsonView
- 17. cakephp Authentifizierungscookie
- 18. CakePHP Projekt
- 19. CakePHP: Sicherheitstest
- 20. Beschleunigen CakePHP
- 21. CakePHP Security
- 22. CakePHP Bildsicherheit
- 23. Cakephp onKeyUp
- 24. CakePHP 2.x Plugin funktioniert nicht in CakePHP 3.x
- 25. CakePHP Wie SQL Monat Funktion in CakePHP find-Methode verwenden
- 26. Gibt es eine bevorzugte Methode der Datenbankverwaltung/Objektpersistenz auf dem iPhone?
- 27. CakePHP E-Mail aktivieren
- 28. CakePHP AppController seltsames Verhalten
- 29. CakePHP Optionsattribute auswählen
- 30. Core.php in CakePHP 3
Müssen Sie zwischen Datenbanken aus der gleichen Weblocation wechseln? Weil ich mich normalerweise auf meinem eigenen Rechner entwickle, eine Testversion auf meinem eigenen Server aufstelle und schließlich auf dem Server des Kunden produzieren lasse. Welches sind drei verschiedene Standorte. – JvO
Ja, das ist mein Fall, aber ich möchte eine Variable oder eine Methode festlegen, die ich nicht für jeden Ort, an dem meine App ausgeführt wird, anders konfigurieren muss. Daher brauche ich weniger Konfigurationen oder Konflikte zwischen meinen Zweigen . –
Haben Sie in Erwägung gezogen, Umgebungsvariablen zu verwenden (die von den Hostkonfigurationen Ihres Servers stammen)? –