エラー発生までの経緯
大学も春休みに突入したので,「よーし,SQLの勉強するぞ!」と息巻いてvscodeを開き,最新版のSQLiteと拡張機能として提供されているSQLiteをインストールした.
まず初めにSQLITE EXPLORER
なるものを召喚せねばならないらしく,適当に作ったtest.db
を右クリックしてOpen Database
を選択して...
さっそく問題にぶちあたった.
[15:04:36][vscode-sqlite][ERROR] Failed to open database 'c:\Users\hoge\code\sq\test.db': Parse error near line 4: no such column: table
aster WHERE (type="table" OR type="view")
error here ---^
えええ,なにこれ.
4行目にエラーとか言われても,そもそもまだ4行目とかないんですけど.
というか,Where
クエリなんて書いてないよ.
解消までの経緯
ということで,githubで開発元のプルリクを見て前例がないかを見てみると意外といっぱいありました(笑)
同時に,何人かの方が原因と解決策を提示していらしたのでここにまとめます.
原因と解消まで
原因
拡張機能でインストールされる"C:\Users\hoge\.vscode\extensions\alexcvzz.vscode-sqlite-0.14.1\dist\extension.js"
に原因が潜んでいたようです.SQLiteが3.41.0からダブルクォーテーションによる記述をサポートしなくなったらしく,エラーに含まれていたようなWHERE (type=\"table\" OR type=\"view\")
というクエリは受け付けなくなったようです.したがって,このダブルクォーテーションをシングルクォーテーションへ変更することが求められているようです.
step1
このextension.js
をvscodeで開くと膨大なソースコードが展開されますが,臆さずにナビゲーションバーから編集を選択し,真ん中くらいにある検索を選択してください.
step2
出てきた検索バーに\"table\"
とでも入れてやると該当箇所がハイライトされるので,その付近にあるはずのWHERE (type=\"table\" OR type=\"view\")
をWHERE (type=\'table\' OR type=\'view\')
としてあげます.これで準備は整ったので,一度ウィンドウを閉じたら再度開いて少し待ちます.
step3
データベースファイルを右クリック,Open Database
を選択すると今度はしっかりエクスプローラーウィンドウの最下にSQLITE EXPLORER
が出てきました.
出てこなかった場合
もう一度ファイルを開いて修正したコードになっているかを確認してください.
また,変更の反映までに時間がかかる場合もあります.
やっと拡張機能が使えるぞ!
結論
正直,素人目にはそんなに大それたエラーではないし,「早く治してほしーなー」といった感じです.今回の内容で不明点・矛盾・誤りがあったら申し訳ありません.