node.js postgresql string-length sequelize.js

node.js - ¿Cómo defino la longitud de Sequelize.STRING?



postgresql string-length (2)

Quiero definir una longitud de un tipo de datos en secuela. Ahí está mi código fuente:

var Profile = sequelize.define(''profile'', { public_id: Sequelize.STRING, label: Sequelize.STRING })

Crea una tabla de perfiles con un public_id con un tipo de datos varchar (255).

Me gustaría definir un public_id con varchar (32).

Busqué en el documento y en la pila, pero no pude encontrar ninguna respuesta ...

¿Cómo puedo hacer eso por favor?


Como se menciona en la documentation , usar:

Sequelize.STRING(32)


Primero, creo que necesitas repensar un poco tu diseño. El punto básico es que las restricciones de longitud deben ser significativas, no solo para ahorrar espacio. PostgreSQL no almacena ''A'' :: varchar (10) de manera diferente que ''A'' :: texto (ambos se almacenan como cadenas de texto de longitud variable, solo mientras el valor almacenado, junto con un especificador de longitud y algunos otros) metadatos), por lo que debe usar el tamaño más largo que pueda funcionar para usted, y usar las longitudes para una aplicación sustancial en lugar de ahorrar espacio. En caso de duda, no se limite. Cuando necesite asegurarse de que encaja en una etiqueta de correo, restringir adecuadamente.

En segundo lugar la respuesta de Dankohn arriba:

var Profile = sequelize.define(''PublicID'', { public_id: { validate: { len: [0,32] })

es la forma en que luego agregaría dicha aplicación al front-end. Una vez más, dicha aplicación debe basarse en lo que usted sabe que necesita, no solo lo que parece ser una buena idea en el momento, y si bien es generalmente más fácil relajar las restricciones que apretarlas, para la longitud de la cuerda, es realmente una obviedad. hacer las cosas de la otra manera.

En cuanto al uso de este tipo en otras aplicaciones, probablemente querrá buscar la información de restricción en los catálogos del sistema, lo que lo lleva a una especie de territorio avanzado.