📜  knex 迁移 tinyint (1)

📅  最后修改于: 2023-12-03 15:17:08.912000             🧑  作者: Mango

在 Knex 迁移中使用 Tinyint

在 Knex 迁移中,可以使用 Tinyint 可以提高数据库表的性能。Tinyint 只需使用 1 字节,而 Int 则需要 4 个字节。

使用 Knex 迁移时,需要保证数据库能够支持Tinyint.

步骤
  1. 首先,需要在 Knexfile.js 中配置数据库连接。这里使用 MySQL 作为示例:
module.exports = {
  development: {
    client: 'mysql2',
    connection: {
      host: '127.0.0.1',
      user: 'root',
      password: 'password',
      database: 'myapp'
    }
  }
}
  1. 在迁移文件中,创建表时使用 Tinyint 就可以了。
exports.up = function(knex) {
  return knex.schema.createTable('users', function(table) {
    table.increments('id');
    table.string('name');
    table.tinyint('age').unsigned().notNullable(); // 使用 Tinyint 定义 age 字段
  });
};

exports.down = function(knex) {
  return knex.schema.dropTableIfExists('users');
};
  1. 最后,运行 knex migrate 命令来执行迁移。
$ knex migrate:latest
注意事项
  • 如果要使用 Tinyint,需要在 schema 定义中使用 .tinyint();同时,Tinyint 的默认长度为 4。
  • 确保数据库支持 Tinyint,否则会出现错误。例如,有些版本的 MySQL 不支持 Tinyint 数据类型。