J'ai un modèle appelé User mais Sequelize recherche la table USERS chaque fois que j'essaie d'enregistrer dans la base de données. Est-ce que quelqu'un sait comment configurer Sequelize pour utiliser des noms de table singuliers? Merci.
109
user
est un mot réservé, vous aurez beaucoup de problèmes si vous essayez vraiment de créer une table avec ce nom.user
n'est pas un mot réservé, mais un mot-clé. Bien que vous ne rencontriez aucun problème lors de son utilisation, il est bon de l'éviter. dev.mysql.com/doc/refman/5.5/en/keywords.htmlRéponses:
le documents indiquent que vous pouvez utiliser la propriété
freezeTableName
.Veuillez jeter un œil à cet exemple:
la source
freezeTableName: true
ne fonctionne pas dans la dernière version de sequelize. Une autre solution?freezeTableName
est qu'il empêche également sqlz de mettre en minuscules les noms de table et de colonne. Ce qui signifie que plus tard, lorsque vous écrivez à la main du SQL pour fouiller dans les données, vous devez faire face à des noms à casse mixte (quoi que cela signifie pour votre dialecte). Sur pg, cela signifie avoir à utiliser des guillemets doubles autour de chaque nom à casse mixte - yuk! J'aimerais que nous puissions désactiver la pluralisation mais conserver le pliage de la casse ...define
a unetableName
option pour le remplacement explicite.freezeTableName: true
en plus demodelName: 'singularName'
Bien que la réponse acceptée soit correcte, vous pouvez le faire une fois pour toutes les tables plutôt que de devoir le faire séparément pour chacun. Vous passez simplement un objet d'options similaire dans le constructeur Sequelize, comme ceci:
Désormais, lorsque vous définissez vos entités, vous n'avez pas à spécifier
freezeTableName: true
:la source
Si vous souhaitez avoir des noms de modèle différents pour les définitions au singulier et au pluriel, vous pouvez passer le nom en tant que paramètre dans les options du modèle.
Veuillez jeter un œil à cet exemple:
cela renverra "personne" en tant qu'objet lorsqu'un seul enregistrement est interrogé et "people" en tant que tableau lorsque nous récupérons plusieurs enregistrements.
la source