【问题标题】:How to create sqlite3 database如何创建 sqlite3 数据库
【发布时间】: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_collat​​ion”未定义。 [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


【解决方案1】:

随便用

(clsql:connect '("/path/to/your/database/data.sqlite3") 
               :database-type :sqlite3)

没有初始化函数。

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 2012-09-05
    • 2014-05-21
    • 1970-01-01
    • 2020-12-07
    • 2011-01-12
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多