如何更改 Geddy 中现有属性的类型?
我相信我需要在模型文件中定义属性时更改设置的类型:
this.defineProperties({
title: {type: 'string', required: true},
description: {type: 'text'},
status: {type: 'boolean'}
});
我还认为我需要在迁移中更改表。我正在使用此处记录的“changeColumn”函数http://geddyjs.org/guide#models
var StatusToBoolean = function () {
this.up = function (next) {
this.changeColumn("step", 'status', 'boolean', function (err, data) {
if (err) { throw err; }
next();
});
};
this.down = function (next) {
this.changeColumn('step', 'status', 'string', function (err, data) {
if (err) { throw err; }
next();
});
};
};
exports.StatusToBoolean = StatusToBoolean;
但是,当我运行此迁移时,我收到“SQLITE_ERROR:接近“ALTER””错误:
Hindenburg:to_do Tom$ geddy jake db:migrate --trace
Running migrations for development environment...
Running status_to_boolean (up)
jake aborted.
Error: SQLITE_ERROR: near "ALTER": syntax error
Hindenburg:to_do Tom$
这让我觉得我做错了什么。我尝试了“--trace”选项(如您所见),但没有提供任何有用的信息。
我还怀疑我需要实际更改表中的一些数据(以便它可以映射到新的数据类型),但文档不清楚如何做到这一点。
任何帮助表示赞赏。谢谢。