经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » PostgreSQL » 查看文章
Postgresql 使用Vscode开发指南
来源:cnblogs  作者:microestc  时间:2023/2/1 9:37:41  对本文有异议

Postgresql 使用Vscode开发指南

depends libraries

  1. sudo apt install -y libsystemd-dev libxml2-dev libssl-dev libicu-dev zlib1g-dev libreadline-dev pkg-config

编译安装

  1. adduser postgres
  2. <!-- cd postgresql目录 -->
  3. mkdir build
  4. mkdir pgsql
  5. cd build
  6. <!-- --prefix=绝对路径 -->
  7. /configure --prefix=/home/postgres/repos/postgresql-15.1/pgsql --with-icu --with-openssl --with-systemd --with-libxml --enable-debug
  8. make -j12
  9. make install
  10. cd ..
  11. mkdir -p pgsql/data
  12. chown postgres pgsql/data
  13. su - postgres
  14. pgsql/bin/initdb -D pgsql/data

前台运行

  1. pgsql/bin/postgres -D pgsql/data

后台运行

  1. pgsql/bin/pg_ctl -D pgsql/data -l logfile start

命令交互工具

  1. pgsql/bin/psql

Vscode 配置文件

.vscode/launch.json

  1. {
  2. "configurations": [
  3. {
  4. "name": "Debug PG SRV",
  5. "type": "cppdbg",
  6. "request": "launch",
  7. "program": "${workspaceFolder}/pgsql/bin/postgres",
  8. "args": [
  9. "-D",
  10. "pgsql/data"
  11. ],
  12. "stopAtEntry": false,
  13. "cwd": "${workspaceFolder}",
  14. "environment": [],
  15. "externalConsole": false,
  16. "MIMode": "gdb",
  17. "setupCommands": [
  18. {
  19. "description": "Enable pretty-printing for gdb",
  20. "text": "-enable-pretty-printing",
  21. "ignoreFailures": true
  22. },
  23. {
  24. "description": "Set Disassembly Flavor to Intel",
  25. "text": "-gdb-set disassembly-flavor intel",
  26. "ignoreFailures": true
  27. },
  28. {
  29. "text": "-gdb-set follow-fork-mode child",
  30. "ignoreFailures": true
  31. },
  32. {
  33. "text": "-gdb-set detach-on-fork on",
  34. "ignoreFailures": true
  35. }
  36. ],
  37. "preLaunchTask": "rebuild_db",
  38. "miDebuggerPath": "/usr/bin/gdb"
  39. },
  40. {
  41. "name": "Attach PG SRV",
  42. "type": "cppdbg",
  43. "request": "attach",
  44. "processId": "${command:pickProcess}",
  45. "program": "${workspaceFolder}/pgsql/bin/postgres",
  46. "MIMode": "gdb",
  47. "setupCommands": [
  48. {
  49. "description": "Enable pretty-printing for gdb",
  50. "text": "-enable-pretty-printing",
  51. "ignoreFailures": true
  52. },
  53. {
  54. "description": "Set Disassembly Flavor to Intel",
  55. "text": "-gdb-set disassembly-flavor intel",
  56. "ignoreFailures": true
  57. }
  58. ]
  59. },
  60. ],
  61. "version": "2.0.0"
  62. }

.vscode/tasks.json

  1. {
  2. "tasks": [
  3. {
  4. "type": "shell",
  5. "label": "install_depends",
  6. "command": "sudo apt install -y libsystemd-dev libxml2-dev libssl-dev libicu-dev zlib1g-dev libreadline-dev pkg-config",
  7. "options": {
  8. "cwd": "${workspaceFolder}"
  9. },
  10. "detail": "Task install depends."
  11. },
  12. {
  13. "type": "shell",
  14. "label": "build_env",
  15. "command": "mkdir build && mkdir -p pgsql/data",
  16. "options": {
  17. "cwd": "${workspaceFolder}"
  18. },
  19. "detail": "Task add folders."
  20. },
  21. {
  22. "type": "shell",
  23. "label": "build_config",
  24. "command": "../configure",
  25. "args": [
  26. "--prefix=${workspaceFolder}/pgsql",
  27. "--with-icu",
  28. "--with-openssl",
  29. "--with-systemd",
  30. "--with-libxml",
  31. "--enable-debug"
  32. ],
  33. "options": {
  34. "cwd": "${workspaceFolder}/build"
  35. },
  36. "detail": "Task Build MakeFile."
  37. },
  38. {
  39. "type": "shell",
  40. "label": "make",
  41. "command": "make",
  42. "args": [
  43. "-j12"
  44. ],
  45. "options": {
  46. "cwd": "${workspaceFolder}/build"
  47. },
  48. "detail": "Task build."
  49. },
  50. {
  51. "type": "shell",
  52. "label": "make_install",
  53. "command": "make",
  54. "args": [
  55. "install"
  56. ],
  57. "options": {
  58. "cwd": "${workspaceFolder}/build"
  59. },
  60. "detail": "Task install database."
  61. },
  62. {
  63. "type": "shell",
  64. "label": "init_db",
  65. "command": "pgsql/bin/initdb",
  66. "args": [
  67. "-D",
  68. "pgsql/data"
  69. ],
  70. "options": {
  71. "cwd": "${workspaceFolder}"
  72. },
  73. "detail": "Task init default database."
  74. },
  75. {
  76. "type": "shell",
  77. "label": "clean_db",
  78. "command": "make uninstall && make clean && rm -rf ../pgsql && rm -rf ../build",
  79. "options": {
  80. "cwd": "${workspaceFolder}/build"
  81. },
  82. "detail": "Task clean database."
  83. },
  84. {
  85. "type": "shell",
  86. "label": "build_db_conf",
  87. "dependsOn": [
  88. "build_env",
  89. "build_config"
  90. ],
  91. "dependsOrder": "sequence",
  92. "detail": "Task add folders."
  93. },
  94. {
  95. "type": "shell",
  96. "label": "build_db",
  97. "dependsOn": [
  98. "make",
  99. "make_install",
  100. "init_db"
  101. ],
  102. "dependsOrder": "sequence",
  103. "detail": "Task add folders."
  104. },
  105. {
  106. "type": "shell",
  107. "label": "rebuild_db",
  108. "dependsOn": [
  109. "make",
  110. "make_install"
  111. ],
  112. "dependsOrder": "sequence",
  113. "detail": "Task add folders."
  114. },
  115. ],
  116. "version": "2.0.0"
  117. }

安装目录修改必要的配置

pgsql/data/postgresql.conf

  1. listen_addresses = '*'

pgsql/data/pg_hba.conf

  1. host all all 0.0.0.0/0 md5

Vscode 调试操作

F1 选择 “Tasks:Run Task” 继续选择 “build_db_conf”
F1 选择 “Tasks:Run Task” 继续选择 “build_db”

DEBUG 工具栏选择 Debug PG SRV,F5 开始调试postgres主进程

如果要调试其它进程,比如我开启psql交互工具建立一个连接,ps aux 可以看到新增的进程信息,DEBUG 工具栏继续选择 Attach PG SRV,F5 开启调试选择需要调试的进程ID

注意:Vscode 需要使用 postgres 用户登录才行(非ROOT用户,其它用户也行,需要新建用户,需要额外的操作)。

原文链接:https://www.cnblogs.com/microestc/p/17079518.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号