mirror of
https://github.com/org-roam/org-roam
synced 2025-08-01 12:17:21 -05:00
docs: update caching docs
Now that emacsql handles choosing an appropriate backend/connector, we do not need to provide these instructions. If there are issues, emacsql has good error messages that tell the user what they need to do to get things working. In general: - If the user is on Emacs >= 29, emacsql will use the built-in sqlite functionality that comes with Emacs. - If the user is on Emacs < 29, emacsql will use a module-based connector that requires the user to have certain libraries available on their machine. emacsql will tell the user what is needed if they do not have it already. Ref: #2486 Close: #2502 Close: #2415
This commit is contained in:
@ -153,9 +153,8 @@ dependencies. These include:
|
|||||||
- dash
|
- dash
|
||||||
- f
|
- f
|
||||||
- s
|
- s
|
||||||
- org (9.4 is the minimal required version!)
|
- org (9.6 is the minimum required version!)
|
||||||
- emacsql
|
- emacsql
|
||||||
- emacsql-sqlite
|
|
||||||
- magit-section
|
- magit-section
|
||||||
- filenotify-recursive
|
- filenotify-recursive
|
||||||
|
|
||||||
|
@ -224,7 +224,6 @@ dependencies that it requires. These include:
|
|||||||
- s
|
- s
|
||||||
- org
|
- org
|
||||||
- emacsql
|
- emacsql
|
||||||
- emacsql-sqlite
|
|
||||||
- magit-section
|
- magit-section
|
||||||
|
|
||||||
You can install this manually as well, or get the latest version from MELPA. You
|
You can install this manually as well, or get the latest version from MELPA. You
|
||||||
@ -423,43 +422,8 @@ can set ~org-roam-node-display-template~ as such:
|
|||||||
|
|
||||||
* Customizing Node Caching
|
* Customizing Node Caching
|
||||||
** How to cache
|
** How to cache
|
||||||
|
Org-roam uses a SQLite database to perform caching. This integration is
|
||||||
Org-roam uses a sqlite database to perform caching, but there are multiple Emacs
|
managed by the [[https://github.com/magit/emacsql][emacsql]] library. It should "just work".
|
||||||
libraries that can be used. The default used by Org-roam is
|
|
||||||
[[https://github.com/magit/emacsql/blob/main/emacsql-sqlite-builtin.el][~emacs-sqlite-builtin~]]. Below the pros and cons of each package is used:
|
|
||||||
|
|
||||||
[[https://melpa.org/#/emacsql-sqlite-builtin][**emacsql-sqlite-builtin**]]
|
|
||||||
|
|
||||||
~emacsql-sqlite-builtin~ uses the in-built SQLite support for Emacs 29 and
|
|
||||||
later. This is the default option if you are using a version of Emacs that
|
|
||||||
supports it.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite-builtin)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
[[https://github.com/cireu/emacsql-sqlite3][**emacs-sqlite3**]]
|
|
||||||
|
|
||||||
~emacs-sqlite3~ uses the official sqlite3 binary that can be obtained from your
|
|
||||||
system's package manager. This is useful if you have issues producing the
|
|
||||||
~sqlite3~ binary required by the other packages. However, it is not recommended
|
|
||||||
because it has some compatibility issues with Emacs, but should work for most
|
|
||||||
regular cases. See [[https://nullprogram.com/blog/2014/02/06/][Chris Wellon's blog post]] for more information.
|
|
||||||
|
|
||||||
To use ~emacsql-sqlite3~, ensure that the package is installed, and set:
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite3)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
[[https://melpa.org/#/emacsql-sqlite-module][**emacssql-sqlite-module**]] (previously emacsql-libsqlite3)
|
|
||||||
|
|
||||||
~emacs-sqlite-module~ is a relatively young package which uses an Emacs module that
|
|
||||||
exposes parts of the SQLite C API to Emacs Lisp.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite-module)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** What to cache
|
** What to cache
|
||||||
|
|
||||||
@ -481,7 +445,7 @@ property to a non-nil value. For example:
|
|||||||
One can also set ~org-roam-db-node-include-function~. For example, to exclude
|
One can also set ~org-roam-db-node-include-function~. For example, to exclude
|
||||||
all headlines with the ~ATTACH~ tag from the Org-roam database, one can set:
|
all headlines with the ~ATTACH~ tag from the Org-roam database, one can set:
|
||||||
|
|
||||||
#+begin_src org
|
#+begin_src emacs-lisp
|
||||||
(setq org-roam-db-node-include-function
|
(setq org-roam-db-node-include-function
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(not (member "ATTACH" (org-get-tags)))))
|
(not (member "ATTACH" (org-get-tags)))))
|
||||||
|
@ -441,8 +441,6 @@ org
|
|||||||
@item
|
@item
|
||||||
emacsql
|
emacsql
|
||||||
@item
|
@item
|
||||||
emacsql-sqlite
|
|
||||||
@item
|
|
||||||
magit-section
|
magit-section
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ -685,42 +683,8 @@ can set @code{org-roam-node-display-template} as such:
|
|||||||
@node How to cache
|
@node How to cache
|
||||||
@section How to cache
|
@section How to cache
|
||||||
|
|
||||||
Org-roam uses a sqlite database to perform caching, but there are multiple Emacs
|
Org-roam uses a SQLite database to perform caching. This integration is
|
||||||
libraries that can be used. The default used by Org-roam is
|
managed by the @uref{https://github.com/magit/emacsql, emacsql} library. It should ``just work''.
|
||||||
@uref{https://github.com/magit/emacsql/blob/main/emacsql-sqlite-builtin.el, @code{emacs-sqlite-builtin}}. Below the pros and cons of each package is used:
|
|
||||||
|
|
||||||
@uref{https://melpa.org/#/emacsql-sqlite-builtin, @strong{@strong{emacsql-sqlite-builtin}}}
|
|
||||||
|
|
||||||
@code{emacsql-sqlite-builtin} uses the in-built SQLite support for Emacs 29 and
|
|
||||||
later. This is the default option if you are using a version of Emacs that
|
|
||||||
supports it.
|
|
||||||
|
|
||||||
@lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite-builtin)
|
|
||||||
@end lisp
|
|
||||||
|
|
||||||
@uref{https://github.com/cireu/emacsql-sqlite3, @strong{@strong{emacs-sqlite3}}}
|
|
||||||
|
|
||||||
@code{emacs-sqlite3} uses the official sqlite3 binary that can be obtained from your
|
|
||||||
system's package manager. This is useful if you have issues producing the
|
|
||||||
@code{sqlite3} binary required by the other packages. However, it is not recommended
|
|
||||||
because it has some compatibility issues with Emacs, but should work for most
|
|
||||||
regular cases. See @uref{https://nullprogram.com/blog/2014/02/06/, Chris Wellon's blog post} for more information.
|
|
||||||
|
|
||||||
To use @code{emacsql-sqlite3}, ensure that the package is installed, and set:
|
|
||||||
|
|
||||||
@lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite3)
|
|
||||||
@end lisp
|
|
||||||
|
|
||||||
@uref{https://melpa.org/#/emacsql-sqlite-module, @strong{@strong{emacssql-sqlite-module}}} (previously emacsql-libsqlite3)
|
|
||||||
|
|
||||||
@code{emacs-sqlite-module} is a relatively young package which uses an Emacs module that
|
|
||||||
exposes parts of the SQLite C API to Emacs Lisp.
|
|
||||||
|
|
||||||
@lisp
|
|
||||||
(setq org-roam-database-connector 'sqlite-module)
|
|
||||||
@end lisp
|
|
||||||
|
|
||||||
@node What to cache
|
@node What to cache
|
||||||
@section What to cache
|
@section What to cache
|
||||||
@ -743,11 +707,11 @@ property to a non-nil value. For example:
|
|||||||
One can also set @code{org-roam-db-node-include-function}. For example, to exclude
|
One can also set @code{org-roam-db-node-include-function}. For example, to exclude
|
||||||
all headlines with the @code{ATTACH} tag from the Org-roam database, one can set:
|
all headlines with the @code{ATTACH} tag from the Org-roam database, one can set:
|
||||||
|
|
||||||
@example
|
@lisp
|
||||||
(setq org-roam-db-node-include-function
|
(setq org-roam-db-node-include-function
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(not (member "ATTACH" (org-get-tags)))))
|
(not (member "ATTACH" (org-get-tags)))))
|
||||||
@end example
|
@end lisp
|
||||||
|
|
||||||
Org-roam relied on the obtained Org AST for the buffer to parse links. However,
|
Org-roam relied on the obtained Org AST for the buffer to parse links. However,
|
||||||
links appearing in some places (e.g. within property drawers) are not considered
|
links appearing in some places (e.g. within property drawers) are not considered
|
||||||
|
@ -80,7 +80,9 @@
|
|||||||
(require 'magit-section)
|
(require 'magit-section)
|
||||||
|
|
||||||
(require 'emacsql)
|
(require 'emacsql)
|
||||||
;; emacsql-sqlite provides an interface to a chosen emacsql SQLite backend (e.g. emacs-sqlite-builtin)
|
;; REVIEW: is this require needed?
|
||||||
|
;; emacsql-sqlite provides a common interface to an emacsql SQLite backend (e.g. emacs-sqlite-builtin)
|
||||||
|
;; not to be confused with a backend itself named emacsql-sqlite that existed in emacsql < 4.0.
|
||||||
(require 'emacsql-sqlite)
|
(require 'emacsql-sqlite)
|
||||||
|
|
||||||
(require 'org)
|
(require 'org)
|
||||||
|
Reference in New Issue
Block a user