📜  sequelize 迁移添加默认值 - Javascript (1)

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

Sequelize 迁移添加默认值

在 Sequelize 中,迁移是一种描述模型更改的方法。在迁移中,可以定义模型的属性、约束、索引等。

本文将介绍如何使用 Sequelize 迁移添加默认值。

添加默认值

添加默认值的方法是在创建表时在属性中设置 defaultValue。

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      name: {
        type: Sequelize.STRING,
        allowNull: false,
        defaultValue: 'John Doe' // 设置默认值
      },
      email: {
        type: Sequelize.STRING,
        allowNull: false
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.dropTable('users');
  }
};

在上述代码中,name 属性设置了默认值为 'John Doe'。

修改默认值

如果需要修改默认值,只需要修改属性中的 defaultValue,并新建一个迁移文件。

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.changeColumn('users', 'name', {
      type: Sequelize.STRING,
      allowNull: false,
      defaultValue: 'Jane Doe' // 修改默认值
    });
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.changeColumn('users', 'name', {
      type: Sequelize.STRING,
      allowNull: false,
      defaultValue: 'John Doe'
    });
  }
};

在上述代码中,使用 queryInterface.changeColumn() 方法修改了 name 属性的默认值为 'Jane Doe'。在回滚时,需要再次调用 changeColumn() 方法将默认值修改回 'John Doe'。

总结

本文介绍了在 Sequelize 中添加和修改属性默认值的方法。需要注意的是,在修改默认值时需要新建一个迁移文件。

希望本文对您有所帮助,更多内容请参考 Sequelize 文档。