## 事象 `sandbox.sql` を作成して以下のように入力しても補完が表示されない。 ```sql SELECT * FROM ``` - カレントディレクトリ配下に `db.sqlite3` は存在する - [[Neovim]]起動時にエラーは発生しない 設定ファイルは以下。 `~/.config/sqls/config.yml` ```yaml lowercaseKeywords: false connections: - alias: drf-sandbox driver: sqlite3 dataSourceName: file:db.sqlite3?cache=shared&mode=memory ``` READMEを参考にした。 > ## DSN Examples > > ``` > file:test.db?cache=shared&mode=memory > ``` > [GitHub - mattn/go-sqlite3: sqlite3 driver for go using database/sql](https://github.com/mattn/go-sqlite3?tab=readme-ov-file#dsn-examples) `nvim/plugins/sqls.lua` ```lua return { "nanotee/sqls.nvim", ft = "sql", config = function() vim.keymap.set({ "n", "i" }, "<C-CR>", "<cmd>SqlsExecuteQuery<CR>", { silent = true }) vim.keymap.set({ "x" }, "<C-CR>", ":'<,'>SqlsExecuteQuery<CR>", { silent = true }) vim.keymap.set({ "n", "i" }, "g<C-CR>", "<cmd>SqlsExecuteQueryVertical<CR>", { silent = true }) vim.keymap.set({ "x" }, "g<C-CR>", ":'<,'>SqlsExecuteQueryVertical<CR>", { silent = true }) end, } ``` `nvim/after/lsp/sqls.lua` ```lua return {} ``` ### 環境 | 対象 | バージョン | | ------------------ | ---------- | | [[macOS]] | 15.7 | | [[Neovim]] | 0.11.4 | | [[sqls]] | `bfb7b40` | | [[nvim-lspconfig]] | `107c245` | ## 原因 `dataSourceName` の `mode` に `memory` を指定しているから。 ```yaml dataSourceName: file:db.sqlite3?cache=shared&mode=memory ``` これはインメモリDBを使う設定であり、`file:` で指定した `./db.sqlite3` は利用されない。 ## 解決方法 `mode` に以下いずれかを指定する。 | 値 | 意味 | | --- | ------------------------------ | | ro | read only (読み込み専用) | | rw | read write (読み書き可) | | rwc | read write create (読み書き + 作成可) | > [Opening A New Database Connection](https://www.sqlite.org/c3ref/open.html) SELECTだけなら `ro` でOK. ```diff lowercaseKeywords: false connections: - alias: drf-sandbox driver: sqlite3 - dataSourceName: file:db.sqlite3?cache=shared&mode=memory + dataSourceName: file:db.sqlite3?cache=shared&mode=ro ```