Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cómo se crea una columna TINYINT con Knex?

En la documentación de knex , solo veo la opción de crear un entero o un entero grande.

Por ejemplo, digamos que tengo una tabla de movies con una columna de rating para almacenar la calificación de 5 estrellas de una película:

 // Migration script exports.up = knex => { return knex.schema .createTable('movies', table => { table.uuid('id').primary() ... table.integer('rating') // <-- I want this to be a TINYINT }) }

¿Hay alguna manera de hacer esto sin recurrir a una consulta SQL sin formato?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Aunque la respuesta de @Jumshud es una buena forma alternativa de hacerlo, aquí está la respuesta corta:

 table.tinyint('rating');

Me sumergí en el código Knex 0.21.6 y encontré una lista de métodos disponibles que ni siquiera están documentados en su sitio web. En el archivo knex/lib/schema/tablebuilder.js hay una lista de métodos inyectados en el prototipo de un TableBuilder de patrón TableBuilder . Los métodos se crean para cada valor de columnTypes :

 // For each of the column methods, create a new "ColumnBuilder" interface, // push it onto the "allStatements" stack, and then return the interface, // with which we can add indexes, etc. each(columnTypes, function (type) { TableBuilder.prototype[type] = function () { const args = toArray(arguments); const builder = this.client.columnBuilder(this, type, args); this._statements.push({ grouping: 'columns', builder, }); return builder; }; });

Y los valores de la matriz columnTypes son:

 // Each of the column types that we can add, we create a new ColumnBuilder // instance and push it onto the statements array. const columnTypes = [ // Numeric 'tinyint', 'smallint', 'mediumint', 'int', 'bigint', 'decimal', 'float', 'double', 'real', 'bit', 'boolean', 'serial', // Date / Time 'date', 'datetime', 'timestamp', 'time', 'year', // String 'char', 'varchar', 'tinytext', 'tinyText', 'text', 'mediumtext', 'mediumText', 'longtext', 'longText', 'binary', 'varbinary', 'tinyblob', 'tinyBlob', 'mediumblob', 'mediumBlob', 'blob', 'longblob', 'longBlob', 'enum', 'set', // Increments, Aliases, and Additional 'bool', 'dateTime', 'increments', 'bigincrements', 'bigIncrements', 'integer', 'biginteger', 'bigInteger', 'string', 'json', 'jsonb', 'uuid', 'enu', 'specificType', ];

Cada valor de esta matriz se convierte en un método en el generador de tablas de esquema.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar el specificType de la siguiente manera:

 table.specificType('rating', 'tinyint(1)')
over 4 years ago · Santiago Trujillo Denunciar

0

En caso de que alguien necesite usar tinyint como booleano ( TINYINT(1) ), puede usar el método table.boolean() .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda