首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从虚拟文件系统(afero)加载SQLite3数据库

从虚拟文件系统(afero)加载SQLite3数据库
EN

Stack Overflow用户
提问于 2018-08-29 12:49:18
回答 1查看 258关注 0票数 2

设置:

1)将SQLite3数据库文件上载到文件服务器

2)将文件存储到虚拟文件系统中

3)我想在该数据库上执行sql查询

目前,我正在使用去-平方米3和位于阿费罗中的数据库文件。

问题:

是否可以将数据库文件加载到go-sqlite3 3中,而不是从os文件系统.中加载另一个源文件?

当前方法:

我的当前解决方案是将文件从afero复制到os.TempDir()目录中,但是我们的ci失败了,而且不是实际的解决方案,因为它不再使用专用的文件系统了。

EN

回答 1

Stack Overflow用户

发布于 2018-08-29 13:26:15

在一个小的源潜水之后,我在sqlite3.go中看到这个

代码语言:javascript
代码运行次数:0
运行
复制
name := C.CString(dsn)
defer C.free(unsafe.Pointer(name))
rv := C._sqlite3_open_v2(name, &db,
    mutex|C.SQLITE_OPEN_READWRITE|C.SQLITE_OPEN_CREATE,
     nil)

因此,这回答了您的问题,数据库的实际打开发生在sqlite3库的“外部”“Go”和“内部”。如果我们检查函数sqlite3_open_v2,我们可以看到它需要一个文件名:

代码语言:javascript
代码运行次数:0
运行
复制
int sqlite3_open_v2(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb,         /* OUT: SQLite db handle */
  int flags,              /* Flags */
  const char *zVfs        /* Name of VFS module to use */
);

我认为这里唯一的方法是实现您自己的Sqlite,它以某种方式与afero抽象交互。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52077914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档