-
-
Save michaelkarrer81/911fc194750863407b359dfb0fe9427e to your computer and use it in GitHub Desktop.
Remote Debug Odoo in Pycharm Prof
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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