I have a Virtual Machine with bench / frappe installed. I am using VSCode with the Extension “Remote SSH” to connect to the Virtual Machine. There I installed a custom app and now I am trying to debug a python file.
I have followed this guide
and debugging starts.
But:
Within the python file I am debugging I use frappe.get_doc(“MyDoctype”, “thename”) and when trying to run this I get the Exception: “no object bound to db”
Exception has occurred: RuntimeError
no object bound to db
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 38, in get_controller
module_name, custom = frappe.db.get_value(“DocType”, doctype, (“module”, “custom”), cache=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 69, in get_doc
controller = get_controller(doctype)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 762, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/ice/ice/api.py”, line 64, in sync_calendar
md = frappe.get_doc(“MyDoctype”, “thename”)
File “/home/frappe/frappe-bench/apps/ice/ice/api.py”, line 581, in
message = my_function(data)
I have searched all answers in this forum with no result, can somebody give me a hint?
thank you for the reply. I have made just one change to the site_config.json (“developer_mode” : 1). With bench --site localhost mariadb I can connect to the db.
If I run bench start with the original Procfile everything works well. Where can I check if there were errors on installation? What logs can I provide to you?
i have tried to set up a remote database setup following this guide:
Unfortunatley it did still return “no object bound to db” . From what I believe it has to do with the frappe framework (e.g. frappe.db) not initializing properly in the VS Code Remote SSH Mode while debugging.
I tried to pin it down within frappe.database.py but the init-method of thedatabase.py file is not being called at all when debugging from VSCode.
Assuming that you followed all the steps mentioned in guide.
Make sure the name of site is same as the one you are entering in browser. It seems that you’ve named it localhost and are probably accessing it using http://localhost:8000/ . If so, this part is correct.
Make sure that the site you want to use for debugging is set as default by issuing the command bench use <your sitename>
Run bench start - This will start Redis, file watcher and other stuff
Hit F5 in vscode to launch werkzeug with vscode debugger attached
Note: Setting up remote database may be irrelevant here.
I’m using this setup over Remote SSH for quite a while without any issues.