我正在尝试使用下面的代码
在迁移脚本中修改从日期到时间戳的列数据类型knex.schema.alterTable('user', function(t) {
t.timestamp('bifthday_date').alter();
});
错误:Knex:警告 - 迁移失败,错误:table.timestamp(...)。alter不是函数
答案 0 :(得分:5)
我已设法使用knex原始查询修改数据类型。
knex.raw('alter TABLE user ALTER COLUMN birthday_date TYPE timestamp with time zone')
答案 1 :(得分:2)
在今年以来,似乎knex会处理从日期到时间戳的alter列,这是我使用的代码:
exports.up = async function(knex, Promise) {
await knex.schema.alterTable('campaigns', function(table) {
table.timestamp('intake_start_date').alter();
table.timestamp('intake_end_date').alter();
});
}
请注意,在knex alter
文档中:
将列标记为更改/修改,而不是默认添加。注意:这仅在.alterTable()中有效,SQlite或Amazon Redshift不支持。
答案 2 :(得分:0)
我认为这失败了,因为您试图用“ bifthday_date”而不是“ birthday_date”来调用列,而您后来在自己的答案中成功使用了“ birthday_date”。