postgresql - 如何使用 sqitch postgresql 验证更改列数据类型更改?
问题描述
我正在进行以下deploy
更改。timestamp
将列的值更改为timestamptz
.
-- Alter the is_deleted flags to be timestamp with time zone
alter table source_meta.sources alter column is_deleted set data type timestamptz
using
is_deleted at time zone 'UTC';
alter table source_meta.series alter column is_deleted set data type timestamptz
using
is_deleted at time zone 'UTC';
verify
如果数据类型未更改,如何编写会出错的脚本?
还需要一些帮助revert
来从时间戳记中删除时区。
解决方案
@nackjicholson,您的解决方案对我来说看起来不错。如果您想要更多信息的错误消息,可以将其包装在一个DO
块中并引发错误:
DO $$
BEGIN
PERFORM TRUE
FROM information_schema.columns
WHERE table_name. = 'sources'
AND column_name = 'is_deleted'
AND data_type = 'timestamp with time zone';
IF NOT FOUND THEN
RAISE EXCEPTION 'sources.is_deleted type is not timestamptz';
END IF;
END;
$$;
推荐阅读
- c# - 是在 Unity 中转换一个类还是一个属性?
- ionic-framework - ionic上传文件/电容/文件路径/readasArrayBuffer
- android - 在 iOS 和 Android 中使用本机反应的 webview 组件的性能问题
- .net - 如何在 .NET 中读取 jwt 令牌?
- php - - 漏洞利用因失败而中止:未找到:无法在目标上找到 base64 解码
- algorithm - 除了求解大小为 n*m 的矩阵外,是否有与匈牙利方法类似的算法?
- html - 如何在背景图像 url() 中传递背景大小和背景位置
- amazon-web-services - 当设备应该有更多内存时,Pytorch 只看到 15GB 内存
- c++ - STD 容器继承
- python - 从具有权重的泊松分布创建直方图 (matplotlib)