Postgresql 使用Vscode开发指南
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开发指南的更多相关文章
- [转帖]2019 简易Web开发指南
2019 简易Web开发指南 2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术 ...
- 《Odoo开发指南》精选分享—第1章-开始使用Odoo开发(1)
引言 在进入Odoo开发之前,我们需要建立我们的开发环境,并学习它的基本管理任务. 在本章中,我们将学习如何设置工作环境,在这里我们将构建我们的Odoo应用程序.我们将学习如何设置Debian或Ubu ...
- vscode配置指南,美化技巧
vscode配置指南,美化技巧 vscode****选中部分高亮 "workbench.colorCustomizations": { "editor.selection ...
- [Lua游戏AI开发指南] 笔记零 - 框架搭建
一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...
- 为vscode开发一款svn右键菜单扩展
在我平时的工作中会经常用到svn blame这个命令,但是vscode现有的svn扩展普遍都不能自定义右键菜单. 所以我产生一个想法:自己动手为vscode开发一款svn的扩展来定制右键菜单,本文记录 ...
- ASP.NET Aries 开源开发框架:开发指南(一)
前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架 ...
- FreeMarker模板开发指南知识点梳理
freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...
- .Net Core Linux centos7行—vscode开发,linux部署运行
前面搭建好啦linux运行环境,下面搭建windows下的开发环境.并完成调试 参考地址:https://www.microsoft.com/net/core#windows. 按照步骤来就好.安装. ...
- Jetty使用教程(四:21-22)—Jetty开发指南
二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
随机推荐
- 二、Django下载与运行
二.Django下载与运行 2.1.Django的下载 目前我们学习和使用的版本是3.2LTS版本 目前开源软件发布一般会有2个不同的分支版本: 1. 普通发行版本: 经常用于一些新功能,新特性,但是 ...
- stm32h750移植lvgl
之前没做过ui,只用过lcd画几条线写点字,如果按键.菜单什么的全用线画也太麻烦了,所以需要一个ui库. 听说lvgl用的人很多,就打算裸机移植一下用用.本文移植的lvgl版本是lvgl6.2,也移植 ...
- c语言中 -> 的用法
->是一个整体,它是用于指向结构体. 1.换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到"->&quo ...
- 三、Ocelot请求聚合与负载均衡
上一篇文章介绍了在.Net Core中如何使用Ocelot:https://www.cnblogs.com/yangleiyu/p/16847439.html 本文介绍在ocelot的请求聚合与负载均 ...
- h5 websocket 断开重新连接
最近的项目中使用ws 长连接来接收和发送消息, 直接上代码 import * as SockJS from "sockjs-client"; import Stomp from & ...
- Spring Boot 中使用 tkMapper
说明:基于 MyBatis 有很多第三方功能插件,这些插件可以完成数据操作方法的封装.数据库逆向工程的生成等. tkMapper 和 MyBatis-plus 都是基于 MyBatis 提供的第三方插 ...
- perl中ENV的使用
在打印环境变量的时候可以用到.实际上是%ENV,perl中的哈希变量,里面保存的是环境变量.键是环境变量名,值是环境变量值.例如,有一个环境变量是PATH,其值为C:\windows,那么,打印这个环 ...
- 渗透技巧基于Swagger-UI的XSS
目录 免责声明: 漏洞简述: 漏洞实现 POC 漏洞利用 如何大规模找到 Swagger UI Google FOFA XRAY 修复 免责声明: 本文章仅供学习和研究使用,严禁使用该文章内容对互 ...
- C温故补缺(四):GDB
gdb gdb是由GNU软件社区提供的C Debug工具 Pre 在调试前,需要先编译.c程序,且要加上-g使输出文件变得可调式 gcc test.c -g -o test 用gdb test来调试程 ...
- 一个有趣的nginx HTTP 400响应问题分析
背景 之前在一次不规范HTTP请求引发的nginx响应400问题分析与解决 中写过客户端query参数未urlencode导致的400问题,当时的结论是: 对于query参数带空格的请求,由于其不符合 ...