
bug: CREATE OR REPLACE VIEW ClickHouse migration incompatible with NFS filesystems (Amazon EFS)
快速结论:该报错发生在自托管 Langfuse 并且 ClickHouse 数据目录使用 NFS 文件系统(如 Amazon EFS)时。优先排查是否使用了 CREATE OR REPLACE VIEW 这类原子替换语句,并考虑回退到 v3.198.0 或改用 DROP VIEW + CREATE VIEW 方式。
问题场景
用户在自托管 Langfuse 环境中,ClickHouse 数据目录挂载了 NFS 文件系统(如 Amazon EFS)。当升级到包含 PR #14872 的版本(该 PR 引入了 CREATE OR REPLACE VIEW 语句)后,ClickHouse 迁移在启动时失败,导致 ClickHouse 服务停止且无法自动恢复。
报错原文
ClickHouse migration using CREATE OR REPLACE VIEW fails due to incompatibility with NFS-based filesystems (e.g., Amazon EFS). The migration aborts, and the ClickHouse server stops.
原因分析
根本原因是 CREATE OR REPLACE VIEW 是 ClickHouse 的原子替换操作,需要文件系统支持原子重命名(如 POSIX rename 原子性)。NFS 文件系统(包括 Amazon EFS)不保证该操作的原子性,因此会失败。
可能原因还包括:使用了其他原子替换语句(如 CREATE OR REPLACE TABLE、EXCHANGE TABLES 等),这些语句在 NFS 上同样不兼容。
环境排查
- 确认 ClickHouse 数据目录是否挂载在 NFS 文件系统(如 Amazon EFS)上。
- 检查 Langfuse 版本是否包含 PR #14872 的变更(即引入了
CREATE OR REPLACE VIEW的版本)。 - 确认回退到旧版本(如 v3.198.0)是否能解决问题。
- 查看 ClickHouse 服务器日志,确认迁移失败的具体 SQL 语句。
解决步骤
- 临时回退:将 Langfuse 版本回退到迁移未引入
CREATE OR REPLACE VIEW的版本(例如 v3.198.0),确保服务恢复正常。 - 修改迁移脚本:将
CREATE OR REPLACE VIEW替换为两步操作:DROP VIEW <view_name>和CREATE VIEW <view_name> AS <query>。 - 检查所有原子替换语句:排查迁移脚本中是否还包含其他不兼容的语句(如
CREATE OR REPLACE TABLE、EXCHANGE TABLES、EXCHANGE DICTIONARIES),并改用非原子操作。 - 应用补丁:如果官方已发布修复版本,直接升级到包含修复的版本。
验证方法
完成修改后重新启动 ClickHouse 和 Langfuse,观察迁移是否完整执行且不报错。可以通过 ClickHouse 客户端查询视图是否存在并返回正确结果。如果使用回退方案,确认服务稳定运行两天以上。


