Postgresql 使用Vscode开发指南

depends libraries

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

编译安装

adduser postgres

<!-- cd postgresql目录 -->
mkdir build
mkdir pgsql
cd build
<!-- --prefix=绝对路径 -->
/configure --prefix=/home/postgres/repos/postgresql-15.1/pgsql --with-icu --with-openssl --with-systemd --with-libxml --enable-debug
make -j12
make install
cd ..
mkdir -p pgsql/data
chown postgres pgsql/data
su - postgres
pgsql/bin/initdb -D pgsql/data

前台运行

pgsql/bin/postgres -D pgsql/data

后台运行

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

命令交互工具

pgsql/bin/psql

Vscode 配置文件

.vscode/launch.json

{
"configurations": [
{
"name": "Debug PG SRV",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/pgsql/bin/postgres",
"args": [
"-D",
"pgsql/data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
},
{
"text": "-gdb-set follow-fork-mode child",
"ignoreFailures": true
},
{
"text": "-gdb-set detach-on-fork on",
"ignoreFailures": true
}
],
"preLaunchTask": "rebuild_db",
"miDebuggerPath": "/usr/bin/gdb"
},
{
"name": "Attach PG SRV",
"type": "cppdbg",
"request": "attach",
"processId": "${command:pickProcess}",
"program": "${workspaceFolder}/pgsql/bin/postgres",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
],
"version": "2.0.0"
}

.vscode/tasks.json

{
"tasks": [
{
"type": "shell",
"label": "install_depends",
"command": "sudo apt install -y libsystemd-dev libxml2-dev libssl-dev libicu-dev zlib1g-dev libreadline-dev pkg-config",
"options": {
"cwd": "${workspaceFolder}"
},
"detail": "Task install depends."
},
{
"type": "shell",
"label": "build_env",
"command": "mkdir build && mkdir -p pgsql/data",
"options": {
"cwd": "${workspaceFolder}"
},
"detail": "Task add folders."
},
{
"type": "shell",
"label": "build_config",
"command": "../configure",
"args": [
"--prefix=${workspaceFolder}/pgsql",
"--with-icu",
"--with-openssl",
"--with-systemd",
"--with-libxml",
"--enable-debug"
],
"options": {
"cwd": "${workspaceFolder}/build"
},
"detail": "Task Build MakeFile."
},
{
"type": "shell",
"label": "make",
"command": "make",
"args": [
"-j12"
],
"options": {
"cwd": "${workspaceFolder}/build"
},
"detail": "Task build."
},
{
"type": "shell",
"label": "make_install",
"command": "make",
"args": [
"install"
],
"options": {
"cwd": "${workspaceFolder}/build"
},
"detail": "Task install database."
},
{
"type": "shell",
"label": "init_db",
"command": "pgsql/bin/initdb",
"args": [
"-D",
"pgsql/data"
],
"options": {
"cwd": "${workspaceFolder}"
},
"detail": "Task init default database."
},
{
"type": "shell",
"label": "clean_db",
"command": "make uninstall && make clean && rm -rf ../pgsql && rm -rf ../build",
"options": {
"cwd": "${workspaceFolder}/build"
},
"detail": "Task clean database."
},
{
"type": "shell",
"label": "build_db_conf",
"dependsOn": [
"build_env",
"build_config"
],
"dependsOrder": "sequence",
"detail": "Task add folders."
},
{
"type": "shell",
"label": "build_db",
"dependsOn": [
"make",
"make_install",
"init_db"
],
"dependsOrder": "sequence",
"detail": "Task add folders."
},
{
"type": "shell",
"label": "rebuild_db",
"dependsOn": [
"make",
"make_install"
],
"dependsOrder": "sequence",
"detail": "Task add folders."
},
],
"version": "2.0.0"
}

安装目录修改必要的配置

pgsql/data/postgresql.conf

listen_addresses = '*'

pgsql/data/pg_hba.conf

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用户,其它用户也行,需要新建用户,需要额外的操作)。

Postgresql 使用Vscode开发指南的更多相关文章

  1. [转帖]2019 简易Web开发指南

    2019 简易Web开发指南     2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术 ...

  2. 《Odoo开发指南》精选分享—第1章-开始使用Odoo开发(1)

    引言 在进入Odoo开发之前,我们需要建立我们的开发环境,并学习它的基本管理任务. 在本章中,我们将学习如何设置工作环境,在这里我们将构建我们的Odoo应用程序.我们将学习如何设置Debian或Ubu ...

  3. vscode配置指南,美化技巧

    vscode配置指南,美化技巧 vscode****选中部分高亮 "workbench.colorCustomizations": { "editor.selection ...

  4. [Lua游戏AI开发指南] 笔记零 - 框架搭建

    一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...

  5. 为vscode开发一款svn右键菜单扩展

    在我平时的工作中会经常用到svn blame这个命令,但是vscode现有的svn扩展普遍都不能自定义右键菜单. 所以我产生一个想法:自己动手为vscode开发一款svn的扩展来定制右键菜单,本文记录 ...

  6. ASP.NET Aries 开源开发框架:开发指南(一)

    前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架 ...

  7. FreeMarker模板开发指南知识点梳理

    freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...

  8. .Net Core Linux centos7行—vscode开发,linux部署运行

    前面搭建好啦linux运行环境,下面搭建windows下的开发环境.并完成调试 参考地址:https://www.microsoft.com/net/core#windows. 按照步骤来就好.安装. ...

  9. Jetty使用教程(四:21-22)—Jetty开发指南

    二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...

  10. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

随机推荐

  1. 十五、资源控制之Deployment

    资源控制器之Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationControlle ...

  2. 九、kubernetes命令行工具kubectl

    为了方便在命令行下对集群.节点.pod进行管理,kubernetes官方提供了一个管理命令:kubectl kubectl作为客户端CLI工具,可以让用户通过命令行对Kubernetes集群进行操作. ...

  3. RAID5部署

    软RAID与备份盘 1.此处我们还用刚才的4块盘做演示,三块盘做raid,一块盘做备份盘,防止磁盘故障 我们以raid 5 来配置三块磁盘 加上一块备份盘 [root@local-pyyu tmp]# ...

  4. apijson 初探

    apijson 初探 本文试着用 5W1H 方式切入,试图快速建立自己对 apijson 的整体认知,所以这不是一趟快速入门的 demo 之旅,而是显得比较务虚的探索式知识体系整合过程. 持续更新中. ...

  5. JMETER与它的组件们

    JSON提取器与Debug Sampler 我们平时会遇到很多JSON格式的接口返回,我们需要提取参数可以用JSON提取器,同时配合自带的调试器来进行调试.  JSON提取器 Name of crea ...

  6. .NET性能优化-复用StringBuilder

    在之前的文章中,我们介绍了dotnet在字符串拼接时可以使用的一些性能优化技巧.比如: 为StringBuilder设置Buffer初始大小 使用ValueStringBuilder等等 不过这些都多 ...

  7. 纯css爱心代码-最近超级火的打火机与公主裙中的爱心代码(简易版)

    theme: cyanosis 最近打火机与公主裙中的爱心代码超级火,看着特别心动,让俺用css来写个简易版!!! 先看效果: 代码拆解: 主要是分为3大部分 分子颗粒 爱心 动画 代码实现: 分子颗 ...

  8. Linux学习环境搭建流程

    Linux学习环境搭建 Vmware安装 VMware下载:https://www.vmware.com/go/getworkstation-win 运行安装程序,该重启安装驱动就重启,不需要就下一步 ...

  9. 试试将.NET7编译为WASM并在Docker上运行

    之前有听到说Docker支持Wasmtime了,刚好.NET7也支持WASM,就带大家来了解一下这个东西,顺便试试它怎么样. 因为WASM(WebAssembly) 一开始是一个给浏览器的技术,比起J ...

  10. netty系列之:来,手把手教你使用netty搭建一个DNS tcp服务器

    目录 简介 搭建netty服务器 DNS服务器的消息处理 DNS客户端消息请求 总结 简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务. ...