Grails 2.4.2 - Dynamische Referenzierung der Standarddatenquelle

Diese Frage wurde teilweise beantwortetHier Es gibt jedoch weiterhin ein Problem beim dynamischen Verweisen auf die Standarddatenquelle.

Ich arbeite an einer internen Anwendung, mit der Entwickler Konfigurationseinstellungen für eine unserer mandantenfähigen Anwendungen ändern und diese Einstellungen von Entwickler auf Test, Staging und Produktion übertragen können. Jeder dieser Server verfügt über eine eigene Datenquelle, und die Grails-App wird auf dem Computer jedes Entwicklers installiert.

Die lokale Datenquelle ist die Standarddatenquelle, und dataSource_testing, dataSource_staging usw. verweisen auf die entsprechenden Umgebungen.

Ich kann die entfernten Datenquellen mit den folgenden dynamisch referenzieren:

def setting = Setting."${params.environmnet}".get(id)

jedoch, wennparams.environment Wenn auf die Standarddatenquelle verwiesen wird, funktioniert dieser Code nicht mehr. In der Dokumentation zum Einrichten von Domänenklassen heißt es:

Wenn eine Domänenklasse die Standard-DataSource und eine oder mehrere andere verwendet, verwenden Sie den speziellen Namen 'DEFAULT', um die Standard-DataSource anzugeben

Sehendie Dokumentation

Dies sieht so aus, als würde es funktionieren, wenn Sie definieren, auf welche Datenquellen Ihre Domain-Klasse anwendbar ist, aber nicht wie folgt auf Ihre Domain-Klasse verweisen kann:def setting = Setting.DEFAULT.get(id). Sie erhalten folgende Fehlermeldung:

Keine solche Eigenschaft: DEFAULT für Klasse ...

Ich [...] wirklichJa wirklich Sie müssen die Anwendung nicht neu konstruieren, damit die Standarddatenquelle nicht wirklich verwendet wird, und anschließend eine neue erstellendataSource_local Datenquelle. Wenn ich das vermeiden kann, wäre es großartig, da es das Aktualisieren von Codestapeln bedeutet, die nur für die lokale Datenquelle gelten.

Meine Frage: Gibt es eine Möglichkeit, dynamisch auf die Standarddatenquelle zu verweisen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage