Sequelize迁移是否应该使您的模型文件与您的数据库保持一致?
我使用sequelize cli来引导一个简单的项目并创建一个模型node_modules/.bin/sequelize model:generate --name User --attributes email:string.我没有问题地迁移了这个.
然后,我创建了以下迁移文件,以向用户电子邮件属性添加notNull约束.
updateEmail迁移
const models = require("../models")
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, 'email',{
type: Sequelize.STRING,
allowNull: false,
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, 'email',{
type: Sequelize.STRING,
});
},
};
Run Code Online (Sandbox Code Playgroud)
更新了数据库模式以添加约束,但模型文件没有.有没有办法在进行迁移时自动更新模型文件?
我在构建时收到错误:
由于错误,服务器无法启动:SequelizeDatabaseError:“SERIAL”处或附近的语法错误
此错误仅在为主键提供参数 autoIncrement=true 时出现。
'use strict';
export default function(sequelize, DataTypes) {
return sequelize.define('Ladder', {
ladder_id: {
type: DataTypes.UUID,
allowNull: false,
primaryKey: true,
autoIncrement: true //<------- If commented it works fine
},
ladder_name: {
type: DataTypes.STRING(50),
allowNull: false,
unique: true
},
ladder_description: {
type: DataTypes.TEXT,
allowNull: true
},
ladder_open: {
type: DataTypes.BOOLEAN,
allowNull: false
},
ladder_hidden: {
type: DataTypes.BOOLEAN,
allowNull: false
},
ladder_creation_date: {
type: DataTypes.DATE,
allowNull: false
},
ladder_fk_user: {
type: DataTypes.INTEGER,
allowNull: false
},
ladder_fk_game: {
type: DataTypes.UUID, …Run Code Online (Sandbox Code Playgroud)