Org-roam relies on an Emacs package called emacsql and emacsql-sqlite to work with the sqlite database. Both of them should be installed automatically in your Emacs environment as a prerequisite for Org-roam when you install it.
emacsql-sqlite requires a C compiler (e.g. gcc or clang ) to be present in your computer. How to install a C compiler depends on the OS that you use.
I believe it’s easy on macOS to install either gcc or clang. One of them may be part of X-code like Git. Or perhaps via brew?
Don’t use emacsql-sqlite3.; it does not work. By default, you should not have to do any manual configuration – I think that’s why you get the error message.
If you install a C compiler and do it again, it should work.
For this… Are you on Doom or use Straight or something to install Org-roam? Some of these features inculuding graph is in a subdirectory of the repo called extesions. You need to also get .el files from it. Adjust your configuration for your package manager. You don’t need to do anything for this if you are using the built-in package.el.
I don’t know exactly how Doom works.
Are you aware of the (+roam2) flag for Doom’s org module?
Does after! macro load or requireorg-roam before you call the org-roam-buffer-toggle command?
If the answer to question 2 above, I think you would need to tell Doom to register org-roam-buffer-toggle for autoloading org-roam – so that when you call the command, Emacs will automatically load org-roam if it hasn’t.
If I remember correctly, the :bind or :command directives within use-package! does this.
So… I think it should be something like below – note I can’t test it but I believe I’ve seen something like it used by others.
(setq org-roam-v2-ack t)
;; I don't know exact syntax, but it would be a list of symbols???
'(org-roam-db-sync org-roam-buffer-toggle) ;;; .. and so on
;;; setq config continues...