Ich brauche einige Daten nach dem zuvor definierten Sequelize-Modell.Gibt es eine Möglichkeit, Attribute // Assoziationen nach dem zuvor definierten Sequelize Model zu erhalten?
Was ich brauche:
* attributes list
* attribute name
* attribute type (INTEGER, STRING,...)
* was it generated by association method?
* list of associations
* association type (belongsTo, hasMany, ...)
Aus irgendeinem Grund ist es ziemlich hart Sequelize Modelle in der Konsole zu überprüfen:
> db.sequelize.models.Payment
Payment // <- it's valid Sequelize Model {Object}, however its not inspectable
> db.sequelize.models.Payment.attributes
...
type:
{ type: { values: [Object] },
values: [ 'cash', 'account', 'transfer' ],
Model: Payment,
fieldName: 'type',
_modelAttribute: true,
field: 'type' },
sum:
{ type:
{ options: [Object],
_length: undefined,
_zerofill: undefined,
_decimals: undefined,
_precision: undefined,
_scale: undefined,
_unsigned: undefined },
Model: Payment,
fieldName: 'sum',
_modelAttribute: true,
field: 'sum' },
...
Wie Sie sehen, gibt es keine aktuellen Informationen über Felder Typen. Das gleiche passiert mit Assoziationen.
Gibt es also eine zuverlässige "offizielle" Möglichkeit, diese Daten aus der Modellklasse zu extrahieren, ohne das Objekt zu graben und umzukehren?
DANKE. Nach gründlicher Suche in Stack Overflow habe ich den Sequelize-Code durchforstet und auf die Attribute meines Modells zugegriffen. Konnte nicht herausfinden, wie man den DataType liest, wenn er als 'ABSTRACT {length: 255}' angezeigt wird. Beide der oben genannten Arbeiten. – NobleUplift
Um den Typ als String für Ihre Datenbank zu erhalten, können Sie 'ModelName.rawAttributes.propertyName.type.toSql()' – Eric
Danke! Habe es gerade heute benutzt. Gibt es Dokumentation für dieses mysteriöse "type" -Objekt und alle darin enthaltenen Eigenschaften/Methoden? – NobleUplift