ndwarshuis / org-sql

SQL backend for Emacs Org-Mode
GNU General Public License v3.0
97 stars 9 forks source link

Error: in prepare, no such table #15

Closed jcguu95 closed 2 years ago

jcguu95 commented 2 years ago

On emacs 27.2 and the lastest commit, calling (org-sql-user-push) on the org file with content

* a
123

returns the error

Debugger entered--Lisp error: (error "Error: in prepare, no such table: file_metadata (1)\n")
  signal(error ("Error: in prepare, no such table: file_metadata (1)\n"))
  error("Error: in prepare, no such table: file_metadata (1)\n")
  (if (= 0 rc) (progn (mapcar #'(lambda (it) (ignore it) (let ((input0 it)) (let* ((h (plist-get input0 :outline_hash)) (p (plist-get input0 :file_path))) (cons h p)))) (org-sql--parse-output-to-plist org-sql-db-config cols (s-trim it-out)))) (error it-out))
  (let* ((--dash-source-211-- input0) (rc (car-safe (prog1 --dash-source-211-- (setq --dash-source-211-- (cdr --dash-source-211--))))) (it-out --dash-source-211--)) (if (= 0 rc) (progn (mapcar #'(lambda (it) (ignore it) (let ((input0 it)) (let* ((h (plist-get input0 :outline_hash)) (p (plist-get input0 :file_path))) (cons h p)))) (org-sql--parse-output-to-plist org-sql-db-config cols (s-trim it-out)))) (error it-out)))
  (let ((input0 (org-sql-send-sql cmd))) (let* ((--dash-source-211-- input0) (rc (car-safe (prog1 --dash-source-211-- (setq --dash-source-211-- (cdr --dash-source-211--))))) (it-out --dash-source-211--)) (if (= 0 rc) (progn (mapcar #'(lambda (it) (ignore it) (let ((input0 it)) (let* ((h (plist-get input0 :outline_hash)) (p (plist-get input0 :file_path))) (cons h p)))) (org-sql--parse-output-to-plist org-sql-db-config cols (s-trim it-out)))) (error it-out))))
  (let* ((tbl-name 'file_metadata) (cols '(:file_path :outline_hash)) (cmd (org-sql--format-select-statement org-sql-db-config cols tbl-name))) (let ((input0 (org-sql-send-sql cmd))) (let* ((--dash-source-211-- input0) (rc (car-safe (prog1 --dash-source-211-- (setq --dash-source-211-- (cdr --dash-source-211--))))) (it-out --dash-source-211--)) (if (= 0 rc) (progn (mapcar #'(lambda (it) (ignore it) (let ((input0 it)) (let* ((h (plist-get input0 :outline_hash)) (p (plist-get input0 :file_path))) (cons h p)))) (org-sql--parse-output-to-plist org-sql-db-config cols (s-trim it-out)))) (error it-out)))))
  org-sql--db-get-hashpathpairs()
  (let* ((disk-hashpathpairs (org-sql--disk-get-hashpathpairs)) (db-hashpathpairs (org-sql--db-get-hashpathpairs)) (max-ids (org-sql--get-max-ids)) (--dash-source-220-- (org-sql--partition-hashpathpairs disk-hashpathpairs db-hashpathpairs)) (fi (cdr (assoc 'files-to-insert --dash-source-220--))) (fd (cdr (assoc 'files-to-delete --dash-source-220--))) (pi (cdr (assoc 'paths-to-insert --dash-source-220--))) (pd (cdr (assoc 'paths-to-delete --dash-source-220--))) (pi* (mapcar #'(lambda (it) (ignore it) (list :hash (car it) :path (cdr it) :attrs (file-attributes (cdr it)))) pi))) (list (org-sql--format-path-delete-statement org-sql-db-config pd) (org-sql--format-outline-delete-statement org-sql-db-config fd) (org-sql--format-insert-statements org-sql-db-config max-ids pi* (mapcar #'(lambda (it) (ignore it) (org-sql--hashpathpair-get-outline-config (car it) (cdr it))) (org-sql--group-hashpathpairs-by-hash fi)))))
  org-sql--get-transactions()
  (org-sql--send-transaction-with-hook nil org-sql-post-push-hooks (org-sql--get-transactions))
  org-sql-push-to-db()
  (let ((input0 (org-sql-push-to-db))) (let* ((--dash-source-250-- input0) (rc (car-safe (prog1 --dash-source-250-- (setq --dash-source-250-- (cdr --dash-source-250--))))) (it-out --dash-source-250--)) (if (= 0 rc) (progn (if org-sql-debug (progn (message "Debug output for %s" "org-sql-push-to-db") (message (if (equal it-out "") "Run Successfully" it-out)))) (message "%s completed" "org-sql-push-to-db")) (progn (message "%s failed" "org-sql-push-to-db") (if org-sql-debug (progn (message it-out)))))))
  org-sql-user-push()
  eval((org-sql-user-push) nil)
  edebug-eval-defun(nil)
  apply(edebug-eval-defun nil)
  eval-defun(nil)
  eros-eval-defun(nil)
  #<subr funcall-interactively>(eros-eval-defun nil)
  apply(#<subr funcall-interactively> (eros-eval-defun nil))
  funcall-interactively(eros-eval-defun nil)
  #<subr call-interactively>(eros-eval-defun nil nil)
  apply(#<subr call-interactively> (eros-eval-defun nil nil))
  explain-pause--wrap-call-interactively(#<subr call-interactively> eros-eval-defun nil nil)
  apply(explain-pause--wrap-call-interactively #<subr call-interactively> (eros-eval-defun nil nil))
  call-interactively(eros-eval-defun nil nil)
  command-execute(eros-eval-defun)
ndwarshuis commented 2 years ago

Did you run org-sql-user-init first? The error is saying one of the tables doesn't exist; initialization will create them.

jcguu95 commented 2 years ago

Not running org-sql-user-init after upgrade was indeed the issue. Thanks.