2017-09-18 2 views
0

Ich bin gerade dabei, unsere API von v0.12 auf Sails auf V1 zu aktualisieren. Nicht die einfachste Aufgabe, aber es wird sich lohnen.sails.getDatastore ist keine Funktion

Das aktuelle Problem, das ich habe, ist unsere alten „ModelName.query“ Umwandlung ruft auf den neuen Stil, der angeblich „sails.getDatastore“ ist. Großartig, gut.

Außer, dass, wenn sie versuchen, dies zu tun in config/bootstrap.js, ich den Fehler immer wieder bekommen „sails.getDatastore ist keine Funktion“.

Ja, ich bin mit dem Standard-Segel-Haken-orm, die .sailsrc hat es auf explizit eingeschaltet; und ja, ich habe globals eingeschaltet.

Ist das Problem, dass die Funktion erst nach dem Bootstrap registriert wird? Weil das für uns keine Option ist; Bootstrap überprüft unser Datenbankschema vor dem Abheben (benutzerdefinierter Code mit nativen Abfragen), sodass unsere Produktionsserver nicht bereitgestellt werden können, wenn wir ein Datenbankupdate verpasst haben. Es beseitigt eine Tonne menschliches Versagen.

Antwort

1

Danke für die 1,0 Tauchgang!

Ich bin mir nicht sicher, was Sie mit dem "Standard" sails-hook-orm meinen - dass Hook direkt als Abhängigkeit von jedem Sails 1.0-Projekt installiert ist - aber ich kann fast garantieren, dass Sie die Version sind Verwendung ist nicht korrekt. Ich tun würde:

npm cache clean 
npm install [email protected] 

in Ihrem Projekt sicherstellen, dass Sie die neuesten bekommen (derzeit v2.0.0-21). Es fügt getDatastore zu dem App-Objekt when it initializes hinzu.

+0

Vielen Dank! Ich wurde verrückt! Es scheint, ich benutzte tatsächlich eine ältere Version von Waterline ... Die neuen Dokumente machten nicht klar, dass dies ein älteres Repo war; Ich hatte angenommen, dass es für v1 erstellt wurde. Ich fahre gerade fort, in einer neuen Reihe von Problemen (die primäre Schlüsselbewegung, veraltete Typen, etc.). Ich danke dir sehr! –

+0

Zur Klarheit, was ich mit "Standard" sails-hook-orm meinte, ist, dass ich ursprünglich den alten Haken genommen und neu geschrieben hatte, also wurde "ID" als erste Spalte erzwungen und ein Soft-Delete hinzugefügt " deletedAt ". Also ist der ORM-Haken, der für Segel entworfen wurde, für mich "Standard". Auch wenn es nicht Teil von v1 ist. –