Skip to content

Instantly share code, notes, and snippets.

@michaelkarrer81
Forked from ilyasProgrammer/remote_dev.py
Created March 23, 2020 14:12
Show Gist options
  • Save michaelkarrer81/911fc194750863407b359dfb0fe9427e to your computer and use it in GitHub Desktop.
Save michaelkarrer81/911fc194750863407b359dfb0fe9427e to your computer and use it in GitHub Desktop.
Remote Debug Odoo in Pycharm Prof
On your remote server, run: pip install cython pydevd
IMPORTANT: Make sure that your computer is visible to server's IP by pinging your computer's IP
AND make port forwarding if necessary
Create debug folder localy using same path as on remote server. Necessary for correct break points work.
Connect remote content for debug:
sshfs bar:/srv/odoo /srv/odoo/
Use this path for mapping.
On your computer, configure a Python Remote Debug in run configurations.
Set Local Host Name: The IP of your computer. Yes, that computer with the pycharm installed.
Set the Port: 7999. Actually, any port will do as long as its above 1000.
Make sure to check the box, SINGLE INSTANCE ONLY
On File>Settings>Execution>Deployment, create an SFTP Server Connection.
Set the SFTP host to the server's IP. set the root path to the installation directory of your odoo server. In my case, its located at /opt/odoo
Set the username and password.
On the mappings tab,
Set the Local Path to your project's directory root
Set the deployment path to "\" or backslash.
Set the web path to "/" or forwardslash.
Test the SFTP connection.
On the server, open the file /opt/odoo/openerp-server (It's a python file without the extension)
Add these statements after the "import openerp"
import pydevd
pydevd.settrace('YOUR COMPUTER IP', port=7999, stdoutToServer=True,stderrToServer=True)
TODO EVERYTIME YOU MODIFY YOUR CODE AND DEBUG THAT
Now to start the debug, add a breakpoint in your code.
Run the remote debug to start listening from the server.
Restart the openerp instance you got running in your server. In my case, I force restart the init.d/odoo-server file:
/etc/init.d/odoo-server restart
If successful, pycharm will light up in the menu bar and ask you to set the path mappings. Just click the autodetect and press Save forever.
Notice that if you visit the odoo server website, it just won't load. Actually, pycharm sets a "virtual" breakpoint after the settrace command you have provided so you have to press the play button thing at the debug(or F8)
Viola! Now it works and any breakpoint you set will stop odoo from executing and let you analyze everything.
Test it by adding a breakpoint in your code and try to run that code. Try the @api.onchange ones since they are more predictable to run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment