📜  sequelize 迁移默认值 - SQL (1)

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

Sequelize 迁移默认值 - SQL

Sequelize 是一款基于 Node.js 的 ORM 框架,用于与 SQL 数据库进行交互。它可以帮助我们更方便地管理数据库和数据表之间的关系。

在 Sequelize 中,我们可以使用迁移 (migration) 来管理数据库结构,它会基于我们定义的迁移脚本来自动创建、修改或删除数据表。同时,我们还可以设置默认值 (default value) 来规定当数据表新增数据时指定列没有设置值时的默认取值。

设置默认值

在 Sequelize 中,我们可以使用 defaultValue 属性来设置默认值。我们在定义数据表列时,可以在属于该列的对象中添加 defaultValue 属性来为其设置默认值。

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('users', {
      id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
      },
      name: {
        type: Sequelize.STRING,
        allowNull: false
      },
      age: {
        type: Sequelize.INTEGER,
        defaultValue: 18 // 设置默认值为 18
      },
      email: {
        type: Sequelize.STRING,
        allowNull: false
      },
      createdAt: {
        type: Sequelize.DATE,
        allowNull: false,
        defaultValue: Sequelize.fn('now') // 设置默认值为当前时间
      },
      updatedAt: {
        type: Sequelize.DATE,
        allowNull: false,
        defaultValue: Sequelize.fn('now') // 设置默认值为当前时间
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('users');
  }
};

在上面的示例中,我们在 users 表中添加了一个 age 列,并将其默认值设为 18。同时,我们还在 createdAtupdatedAt 列中设置了默认值,这里我们使用了 Sequelize.fn 方法来调用 SQL 函数获取当前时间。

查询默认值

我们可以在 Sequelize 中使用 defaultValue 属性来查询默认值。只需要定义该列时设置 defaultValue 属性,并在查询时指定该列,Sequelize 就会自动返回默认值。

const user = await User.create({
  name: '张三',
  email: 'zhangsan@example.com'
});

console.log(user.age); // 输出 18,这是默认值
总结

在 Sequelize 中,我们可以使用 defaultValue 属性为数据表列设置默认值,同时也可以使用它来查询默认值。这样可以帮助我们更好地管理数据库结构,缩短开发周期。