Je crée à partir d'une source json un csv que je veux utiliser pour remplir une base de données memsql à l'aide de LOAD DATA INFILE
.Comment gérer les champs nullables pour la génération csv?
J'ai écrit un script de type pour la conversation et j'utilise la bibliothèque json2csv
.
Il laisse les valeurs pour les entrées vides Nulled cependant, la création d'une chaîne comme:
foo, bar, , barz, 11 ,
Pourtant, je mes sortie soit:
foo, bar, \N , barz, 11 , \N
pour mes champs Nulled. Sinon, ma base de données remplira différentes valeurs par défaut, telles que 0
pour un nombre qui devrait être NULL
.
Je me suis retrouvé à faire:
const someEntitites.map((entity: Entity) => {
entity.foo = entity.foo === null ? '\\N' : entity.foo;
entity.bar = entity.bar === null ? '\\N' : entity.bar;
...
return entity;
}
Donc, fondamentalement, je suis hardcoding mon approche à mon entité, et je suis aussi sujette à des bugs, car je pourrais avoir oublié de vérifier une propriété annulable. Et si je dois exporter une autre table, je dois répéter cela encore une fois.
Comment est-ce que je peux généraliser ceci, ainsi je peux employer ceci sur différentes entités où le manuscrit "découvre" les champs nullables et place le marqueur en conséquence?
Pouvez-vous publier les détails de votre type 'Entity'? – jcalz
@jcalz Le type d'entité spécifique ne doit pas être pertinent. Voir ma propre réponse. – k0pernikus
Toutes les propriétés de 'Entity' sont-elles éventuellement nulles? – jcalz