我尝试做的是加载CQL文件以重新初始化(删除并创建)键空间中的所有表。
我在https://datastax.github.io/python-driver/搜索了文档,但没有找到任何直接的方法来完成此任务。
SOURCE无法正常工作,因为它是一个cqlsh命令。我尝试将文件作为输入读取并运行,但遇到错误,因为execute()只运行一行。我的最后一个选择是解析文件并运行每个CQL命令,但这对于一个简单的请求来说很麻烦。
目前,我最接近的是在读取过程中执行文件,如下所示。这是由于分号而导致EOL出现问题的地方。
with app.open_resource('schema.cql', mode='r') as f:
db.execute(f.read())
答案 0 :(得分:2)
您可以将文件作为一个整体读取,然后在;
字符上拆分,如下面的代码所示。这个解决方案的缺点是它非常原始 - 它不处理注释中可能存在的;
字符等。但对于简单的情况,这可能没问题(imho)......
with open('create_schema.cql', mode='r') as f:
txt = f.read()
stmts = txt.split(r';')
for i in stmts:
stmt = i.strip()
if stmt != '':
print('Executing "' + stmt + '"')
session.execute(stmt)
更新:如果您使用它来执行架构更改语句(创建/删除/更改),那么您需要在执行每个语句后检查架构协议