3

是否可以使用遷移文件更改列的「驗證」元數據?我嘗試了queryInterface.changeColumn方法,它似乎只能改變文檔中提到的三個元數據(defaultValue,allowNull和type)。Sequelize:更改「驗證」列元數據

我試着做這樣的事情裏面「向上」遷移文件的對象:

queryInterface.changeColumn(
    'tableName', 
    'columnName', 
    { 
    validate: { 
     is: /new_regex_validation/ 
    } 
    } 
) 

然而,上述嘗試,我沒有工作,當我跑「sequelize分貝:遷移」

爲了簡便起見,我將使用一個表定義來闡述我的問題:

我試圖改變一個已經存在的表是這樣的:

var tableName = sequelize.define('tableName', { 
    columnName: { 
     type: DataTypes.STRING, 
     unique: true, 
     allowNull: false, 
     validate: { 
      is: /some_regex_validation/ 
     } 
    } 
}) 

到這一點使用sequelize遷移:

var tableName = sequelize.define('tableName', { 
    columnName: { 
     type: DataTypes.STRING, 
     unique: true, 
     allowNull: false, 
     validate: { 
      is: /a_new-or-different_regex_validation/ 
     } 
    } 
}) 

只是在使用sequelize遷移刪除驗證元數據:

var tableName = sequelize.define('tableName', { 
    columnName: { 
     type: DataTypes.STRING, 
     unique: true, 
     allowNull: false 
    } 
}) 

任何想法?

回答

2

驗證發生在客戶端上,而不是數據庫上。你不需要遷移它。

+0

感謝您的回答!通過編輯模型文件的驗證元數據來確認這一點。有用! :d –