Ich versuche, eine dynamische Variable in einem anderen Namespace zu definieren. Die Lobos-Dokumentation lautet:So legen Sie eine dynamische Variable in einem anderen Namespace fest
Standardmäßig werden alle Migrationen im Namespace lobos.migrations gespeichert. Es wird automatisch durch Migrationsbefehle geladen, so dass es keine braucht, um es selbst zu laden. Um einen anderen Namespace zu verwenden, müssen Sie daher die Variable lobos.migration/migrations-namespace dynamischer Variable ändern.
Ich kann nicht herausfinden, wie die dynamische Variable aus meinem neuen Namespace gesetzt wird.
Ich kann dies über (ns `lobos.migration) in der ers tun, aber dieses cmd aus meiner eigenen ns
(def ^:dynamic lobos.migration/*migrations-namespace* 'gb.install.migrations)
ergibt Can't create defs outside of current ns
läuft.
Wie kann ich das beheben?
Große Abstimmung, Chouser, aber wow - diese letzte Version ist unglaublich barock, für eine Operation, von der ich denke, dass sie routinemäßig auftreten würde, wenn auch relativ selten. Globale Parametereinstellungen sollten nicht oft verwendet werden, aber sie haben ihren Platz. Um beispielsweise die Ausgabebreite von 'pprint' zu ändern, kann ich' clojure.pprint/* print-right-margin * 'setzen, aber die oben beschriebene' alter-var-root' Methode ist die einzige Methode, die ich bekommen habe arbeiten. – Mars