【发布时间】:2015-01-10 17:59:19
【问题描述】:
我想创建一个新的 sqlite3 数据库。看一下我发现this 场景的clsql 示例。这意味着
(ql:quickload "clsql")
(ql:quickload "clsql-sqlite3")
(uffi:def-function
("create_iso_8859_15_ci_collation" create-coll)
((db sqlite3:sqlite3-db))
:returning :int
:module "sqlite3-utils")
(clsql:connect (list "home/user/test.db" #'create-coll) :database-type :sqlite3)
应该创建一个新的数据库。但相反,我得到:
外星人函数“create_iso_8859_15_ci_collation”未定义。 [SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR 类型的条件]
如何从头开始创建新的 sqlite3 数据库?
【问题讨论】:
-
数据库文件和它所在的文件夹是否可写?检查权限。
-
@ColonelThirtyTwo 这是我的主目录。我还进一步测试了事先创建文件。打开/关闭没有任何问题。因此,只要 clsql 不更改用户/权限,权限就应该适合,这会很奇怪。
-
您是否尝试按照此处sqlite.org/quickstart.html 的描述创建数据库?
-
@VadimKirilchuk 是的,它工作得很好。虽然我想使用 clsql 工具自动执行它,因为它们应该支持它。
-
可能是它位于这里;;;;加载 sqlite3-utils.so 库。请参阅 Makefile 以创建库。 (除非 (uffi:load-foreign-library "/usr/lib/clsql/sqlite3-utils.so" :module "sqlite3-utils" :supporting-libraries '("c")))(错误“无法加载外部库")) ?
标签: sqlite common-lisp clsql