我正在寻找一种方法从SQLite数据库获取结果,选择模式的一部分,并通过paramiko在远程机器上重新创建它,而无需本地文件的中间步骤或任何形式的非远程文件纯SQLite数据库。
这篇博客文章设置了一种很好的方式来获取我想要的模式的一部分,但我必须将其转储到一个文件,然后通过远程脚本将其读入数据库:
http://blog.marcus-brinkmann.de/2010/08/27/how-to-use-sqlites-backup-in-python/
我知道paramiko可以像这样的对象提供远程文件:
f = self.sftp.open(path, 'wb')
f.write(fileobj.read())
f.close()
有没有办法将一些文件对象,StringIO或字节转换与一个SQLite DB API结合起来,以便提供一种流式传输预构建的SQLite数据库,而无需在主机或远程上进行额外的文件写入?
换句话说就是这样:
f = self.sftp.open(path, 'wb')
conn = sqlite3.connection(f)
答案 0 :(得分:1)
不是您问题的直接解决方案,但这就是网络API的用途。构建类似REST的api可能是一个不错的选择。
由于您已经在python中,我会看一下使用Django提供drop-ship API的django-tastypie。如果您使用现有的数据库架构进行操作,Django将是一个不太理想的解决方案,尽管您可以使其工作。
您可能还想查看Pylons,这是一个比Django更通用/准系统的框架。一切都取决于您的实际要求。