如何解决无法使用“gcloud spanner databases ddl update”命令执行 Spanner DDL 脚本
Google Spanner DDL 脚本在 Spanner Console 中提交时成功运行,但通过使用“--ddl-file”参数通过“glcoud spanner databases ddl update”命令执行时,它始终失败并显示错误:
(gcloud.spanner.databases.ddl.update) INVALID_ARGUMENT:解析 Spanner DDL 时出错 语句:\n:第 1 行第 1 列语法错误:解析时遇到“EOF”: ddl_语句
- '@type':type.googleapis.com/google.rpc.LocalizedMessage 语言环境:en-US 留言: |- 解析 Spanner DDL 语句时出错: :第 1 行第 1 列语法错误:解析时遇到“EOF”:ddl_statement
命令示例:
gcloud spanner 数据库 ddl 更新 test-db
--instance=测试实例
--ddl-file=table.ddl
猫表.ddl
创建表区域 ( region_id STRING(2) 非空, 名称字符串(13)非空, ) 主键 (region_id);
互联网上只有一个其他参考资料提到了这种相同的情况。有没有人通过“ddl-file”参数成功工作?
解决方法
问题(最有可能)是由 DDL 脚本中的最后一个分号引起的。似乎 --ddl-file
选项接受具有多个 DDL 语句的脚本,这些语句可能由分号 (;
) 分隔,但最后一条语句不应以分号终止。这样做会导致 gcloud
尝试解析最后一个 DDL 语句之后的另一个 DDL 语句,结果却确定没有,从而引发 Unexpected end of file
错误。
所以 TLDR:删除脚本中的最后一个分号,它应该可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。