Connect to PostgreSQL in VS Code
To connect to PostgreSQL from Visual Studio Code (VS Code), you can use an extension called “PostgreSQL” which provides a graphical interface to interact with your PostgreSQL database.
Connecting to PostgreSQL from VS Code provides several benefits, including:
-
- Connect to PostgreSQL instances
- Manage connection profiles
- Connect to a different Postgres instance or database in each tab
- View object DDL with ‘Go to Definition’ and ‘Peek Definition’
- Write queries with IntelliSense
- Run queries and save results as JSON, csv, or Excel
Install VS Code PostgreSQL extension
- Install the “PostgreSQL” extension in VS Code. You can do this by opening the Extensions view (Ctrl + Shift + X), searching for “PostgreSQL” in the search bar, and clicking on “Install” next to the “PostgreSQL” extension by Microsoft.
- Open the “PostgreSQL” extension by clicking on its icon in the Activity Bar (left sidebar).
QuickStart
- Open the Command Palette Ctrl + Shift + P (On mac use ⌘ + Shift + P)
- Search and select PostgreSQL: New Query
- In the command palette, select Create Connection Profile . Follow the prompts to enter your Postgres instance hostname, database, username, and password.

You are now connected to your Postgres database. You can confirm this via the Status Bar (the ribbon at the bottom of the VS Code window). It will show your connected hostname, database, and user.
Query the database

- Type a query ex. SELECT * FROM pg_stat_activity;
- Right-click, select Execute Query / keyboard shortcut [⌘M ⌘R] and the results will show in a new window.
- You can also save the query results as JSON, CSV or Excel.
So now, you can seamlessly code for PostgreSQL from Microsoft VS Code without switching screens, leverage powerful intellisense and execute queries.
IMP NOTE: Result windows from queries won´t show up again after being closed. This is bug with current version and is being worked by dev team. Workaround is either to keep the result window Open Or close / re-open the VS code window.
Share this:
Like this:
Like Loading.
Related
Author: Varun Dhawan
Hello dear reader, I’m a Product Manager @Microsoft based in MN, US (beautiful land of 10,000 lakes). I am perpetually curious and always willing to learn and engineer systems that can help solve complex problems using data. When I am not engineering or blogging, you’ll find me cooking and spending time with my family. Varun.Dhawan@gmail.com View all posts by Varun Dhawan
5 thoughts on “Connect to PostgreSQL in VS Code”
Siddharth Sayal says:
Hi Varun Sir, I am Siddharth, I am 9 years old. I am trying to learn Python but i have got stuck with my VS code as it is not connecting with my PSQl Shell. I have tried your above given method but my VS code fails to connect with the database on the PSQL Shell. I have tried many google searches but i have not been able to get a solution for it. I am working on windows 7 and my PSQL is 9.5. Can you please help me as i am not able to progress further. Thanks and regards Siddharth
New DelhiVarun Dhawan says:
Hi Siddharth First I’m super impressed to know that with at your age, you are making efforts to learn Python and that you took to test something, run into issue and tried googling the solution. Keep up the good work Now about the issue: Unable to connect from VS Code to PostgreSQL
– So my post here illustrate PostgreSQL VS Code extension by Microsoft that can be used to connect PostgreSQL instance within VS Code
– You can use the extension independently to connect to a postgres db and query objects. Just think of this as a GUI app like pgAdmin or dbeaver that enables you to view database and run queries.
– If you are doing, this just follow post to install / configure PostgreSQL extension. If you still run into issues, share the screenshot and I can have a look However,
– If you are writing Python, in VS Code and trying to connect to database, that is different scenario
– Here, you have to use a database adapter like psycopg (refer this here)
– You can still use VS Code as an code editor to write your Python code, however you not required to install PostgreSQL extension, since you are using a database adapter to programmatically connect to PostgreSQL from your python code. let me know how it went. Thanks,
VarunSiddharth Sayal says:
Dear sir, thanks for your guidance. I am using the second part (the Python code on the VS code) The code is working fine on the VS code, When i try to make a table it says it is done (as shown below in the screenshot) But when i check the tables in the PSQL shell(PostgreSQL) i am not able to find the table i created(as shown below in the screenshot) I tried using the SQL tools but i didn’t make any difference it said SSL error Regards Siddharth Sayal
Siddharth Sayal says:
Dear sir,
thanks for your guidance.
I am using the second part (the Python code on the VS code)
The code is working fine on the VS code, When i try to make a table it says it is done (as shown below in the screenshot) But when i check the tables in the PSQL shell(PostgreSQL) i am not able to find the table i created(as shown below in the screenshot)
I tried using the SQL tools but i didn’t make any difference it said SSL error
Regards
Siddharth Sayal
(I’ve sent the screenshots in the mail)bobby says:
Hey!
Do you have any solutions to connect to PostgreSQL servers via a SSH tunnel forwarding from VSCode?
This extension doesn’t have a way to do it.
Thanks!Как подключить postgresql к c
Для работы с базой данных PostgreSQL в проект необходимо добавить через Nuget пакет Npgsql.EntityFrameworkCore.PostgreSQL :

После установки пакета определим в проекте класс User:
public class User < public int Id < get; set; >public string? Name < get; set; >public int Age < get; set; >>
И также определим класс контекста данных:
using Microsoft.EntityFrameworkCore; public class ApplicationContext : DbContext < public DbSetUsers < get; set; >= null!; public ApplicationContext() < Database.EnsureCreated(); >protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) < optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=usersdb;Username=postgres;Password=пароль_от_postgres"); >>Для установки подключения к базе данных в методе OnConfiguring вызывается метод UseNpgsql() , в который передается строка подключения. Строка подключения содержит адрес сервера (параметр Host), порт (Port), название базы данных на сервере (Database), имя пользователя в рамках сервера PostgreSQL (Username) и его пароль (Password). В зависимости от настроек сервера PostgreSQL параметры могут отличаться.
Теперь определим в файле Program.cs простейшую программу по добавлению и извлечению объектов из базы данных:
// добавление данных using (ApplicationContext db = new ApplicationContext()) < // создаем два объекта User User user1 = new User < Name = "Tom", Age = 33 >; User user2 = new User < Name = "Alice", Age = 26 >; // добавляем их в бд db.Users.AddRange(user1, user2); db.SaveChanges(); > // получение данных using (ApplicationContext db = new ApplicationContext()) < // получаем объекты из бд и выводим на консоль var users = db.Users.ToList(); Console.WriteLine("Users list:"); foreach (User u in users) < Console.WriteLine($". - "); > >Users list: 1.Tom - 33 2.Alice - 26
Миграции
Выше для создания базы данных использовался метод Database.EnsureCreated. Теперь изменим класс контекста данных — уберем вызов Database.EnsureCreated и изменим название база данных:
public class ApplicationContext : DbContext < public DbSetUsers < get; set; >= null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) < optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=usersdb2;Username=postgres;Password=123456789"); >>Посмотрим теперь, как использовать миграции. Прежде всего нам надо добавить в проект через Nuget пакет Microsoft.EntityFrameworkCore.Tools для поддержки миграций.
Для создания базы данных создадим и выполним миграции. Для этого в окне Package Manager Console введем команду:
Add-Migration Initial
После генерации файла миграции для создания базы данных выполним команду:
Update-Database
После этого на сервере будет создана база данных, и мы сможем с ней взаимодействовать.
Подключение к существующей базе данных
Для подключения к существующей базе данных в PostgreSQL необходимо в окне Package Manager Console выполнить команду Scaffold-DbContext, которой передается строка подключения и название провайдера, то есть Npgsql.EntityFrameworkCore.PostgreSQL (для выполнения этой команды тоже необходим пакет Microsoft.EntityFrameworkCore.Tools ). Сначала вводится команда Scaffold-DbContext и строка подключения:
Scaffold-DbContext "Host=localhost;Port=5432;Database=usersdb;Username=postgres;Password=123456789"
Затем в консоли появится слово Provider , после которого надо будет ввести название провайдера, то есть
Npgsql.EntityFrameworkCore.PostgreSQL
Причем на данный момент название провайдера вводится вручную.

И если все прошло удачно, то EntityFramework Core автоматически сгенерирует все необходимые классы моделей и контекста.
Установка и использование PostgreSQL в Ubuntu 22.04
Инструкция о том, как развернуть PostgreSQL на виртуальной машине и научиться работать с базовыми функциями сервиса.
Эта инструкция — часть курса «PostgreSQL для новичков».
Смотреть весь курс
Введение: что такое PostgreSQL
PostgreSQL (Postgres) — одна из популярных СУБД для проектов различных уровней: от стартапа до высоконагруженной системы. Она имеет большой набор функций, помогающий разработчикам и администраторам в разработке приложений, защите целостности данных и их управлении. PostgreSQL стандартизирована, надежна и способна осуществлять параллельность операций без блокировки при чтении. Она универсальна, подходит под любую операционную систему. В числе преимуществ также можно выделить:
- расширяемость (можно определять свои типы данных, создавать пользовательские функции);
- возможность индексирования географических объектов и присутствие расширения PostGIS;
- наследование (концепция ООП, считающая, что абстрактный тип данных способен наследовать данные и набор функций уже существующего типа, способствуя переиспользованию компонентов ПО;
- масштабируемая система встроенных языков программирования;
- устойчивые и надежные функции репликаций и транзакций.
Поскольку PostgreSQL продукт open-source, ее функции можно расширять и дополнять. Для дополнения функций можно воспользоваться одним из следующих языков:
- процедурный язык PL/pgSQL, встроенный язык, аналогичный PL/SQL, который используется в СУБД Oracle;
- классические языки C, C++, Java (с модулем PL/Java);
- скриптовые языки PL/v8 (JS), PL/Scheme, PL/Tcl, PL/sh, PL/Ruby, PL/Python, PL/PHP, PL/Perl, PL/LOLCODE, PL/Lua;
- Статистический язык R (используя модуль PL/R).
PostgreSQL поддерживает следующие объекты БД: B-дерево, хеш, GiST, BRIN, Bloom.
У PostgreSQL большой список поддерживаемых данных: численные типы, символьные типы, двоичные типы, «дата/время», булев тип, геометрические примитивы и т.д.
PostgreSQL позволяет нескольким пользователям работать одновременно с БД благодаря механизму MVCC (Multiversion Concurrency Control). За счет этого исключается необходимость блокировок чтения.
В этой инструкции мы развернем PostgreSQL на виртуальной машине. Рассмотрим базовые функции сервиса: генерацию роли, базы данных и таблицы, работу с консолью с добавленной ролью и удаление СУБД на виртуальной машине
Требования к серверу
СУБД развернем на виртуальной машине Ubuntu 22.04, аккаунтом без root прав с sudo и брандмауэром.
Создание виртуальной машины (сервера)
При написании этой инструкции мы воспользуемся Облачной платформой Selectel, на которой сконфигурируем сервер с нужной нам операционной системой.
На странице Облачная платформа перейдем в раздел Серверы и нажмем Создать сервер.

В поле Источник из выпадающего списка выберем Ubuntu 22.04.

В качестве ОС выберем образ Ubuntu 22.04. Для небольшого сервера PostgreSQL будет достаточно конфигурации с 1 CPU, 2 ГБ оперативной памяти и 5 ГБ диска. В настройках сети не забудьте выделить машине внешний IP-адрес, если планируете подключаться к ней из интернета. Также сохраните пароль от root-пользователя и проверьте, что выбран правильный SSH-ключ.
Минимальные настройки готовы, нажмем кнопку Создать — наша виртуальная машина готова и отображается в списке на вкладке Серверы. Как самостоятельно сконфигурировать сервер, развернуто написано в базе знаний.
Первичная настройка
До развертывания PostgreSQL настроим сервер: перейдем к нему по SSH и настроим брандмауэр с утилитой UFW.
Подключение по SSH
В терминале локальной машины введем:
$ ssh root@server_ipserver_ip — значение IP-адреса сервера, находится в разделе «Порты».
Для аутентификации потребуется пароль root-пользователя, его можно увидеть в разделе «Консоль».Настройка брандмауэра
Чтобы сервер позволял подключаться пользователям по SSH, разберемся с брандмауэром.
На сервер мы подключились под root-пользователем и прежде чем настраивать, переключимся на аккаунт без root-прав с sudo.$ sudo apt updateДля брандмауэра скачиваем утилиту UFW:
$ sudo apt install ufwСписок профилей UFW можно вывести, написав:
$ sudo ufw app listOpenSSH будет отображаться в списке:
Available applications: OpenSSHРазрешаем воспользоваться подключением по SSH:
$ sudo ufw allow OpenSSHИ стартуем брандмауэр:
$ sudo ufw enableПроверим статус брандмауэра и список подключений OpenSSH:
$ sudo ufw statusСистема даст ответ:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)Займемся непосредственно развертыванием PostgreSQL.
Установка PostgreSQL на Ubuntu
В репозиториях Ubuntu уже включена PostgreSQL. Развертывание выполняется командой apt.
До загрузки PostgreSQL обновляем списки пакетов:
$ sudo apt updateЗагрузим PostgreSQL с утилитой -contrib:
$ sudo apt install postgresql postgresql-contribЗагрузятся драйверы PostgreSQL последней версии и развернутся необходимые компоненты на виртуальной машине с Ubuntu.
$ sudo systemctl start postgresql.serviceПроверка статуса сервиса:
$ sudo systemctl status postgresql.serviceСервис развернули, разберемся в работе аккаунта postgres.
Работа с аккаунтом PostgreSQL
PostgreSQL применяет термин «Роль». Практически это тот же аккаунт в Ubuntu. При запуске СУБД роли сервиса привязываются к одноименным аккаунтам в Unix-системах. Другими словами, при наличии роли в PostgreSQL, войти в СУБД можно с аккаунтом Ubuntu. При запуске СУБД генерируется аккаунт postgres, привязываемый к роли PostgreSQL.
Вариант 1
Войдем в аккаунт:
$ sudo -i -u postgresПосле ввода команды видим подтверждение о переходе в аккаунт:
postgres@postgresdoc:~$Откроем консоль Postgres:
$ psqlКонсоль открыта, что подтверждается записью в начале строки:
postgres=#Работа в СУБД ведется из консоли.
Узнать статус подключения:
postgres=# \conninfoВозврат в аккаунт:
postgres=# \qВариант 2
Войдем в аккаунт postgres с sudo. Если сейчас находимся в аккаунте postgres, нужно выйти, набрав exit. В этом варианте перейдем в аккаунт postgres с sudo:
$ sudo -u postgres psqlВозврат в аккаунт:
postgres=# \qСоздание роли
Аккаунт postgres обладает правами администратора. Напишем createuser, эта команда сообщает, что мы добавляем новую роль. Чтобы указать имя роли и выдать суперюзера, применим флаг —interactive.
Запись будет такой:
postgres@postgresdoc:~$ createuser --interactiveВариант работы без переходов между аккаунтами:
$ sudo -u postgres createuser --interactiveВводим имя, выдаем суперюзера:
Enter name of role to add: tester Shall the new role be a superuser? (y/n) yПосмотреть другие ключи настроек:
postgres@postgresdoc:~$ man createuserРоль создана, поднимаем БД.
Создание базы данных
Любому созданному аккаунту привязывается база данных с идентичным именем, то есть наш созданный tester начнет подключаться к базе данных tester.
Командой createdb добавим БД (поднимем новую базу PostgreSQL на Ubuntu), назвав ее tester:postgres@postgresdoc:~$ createdb testerВариант работы без переходов между аккаунтами:
$ sudo -u postgres createdb testerПереход в командную строку PostgreSQL с новой ролью
Работа в консоли PostgreSQL подразумевает наличие аккаунта Ubuntu с именем БД в Postgres.
Добавим аккаунт Ubuntu, используя adduser (предварительно выйдя из аккаунта postgres), назвав аналогично новой роли:$ sudo adduser testerДобавив аккаунт tester, переключаемся на него и подключаемся к консоли:
$ sudo -i -u tester $ psql$ sudo -u tester psqlПереключиться на другую БД:
$ psql -d postgrestester=# \conninfoYou are connected to database " tester " as user " tester " via socket in "/var/run/postgresql" at port "5432".Проверку желательно выполнять для разных пользователей с разными БД.
Создание таблицы с данными
Команда создания имеет вид:
CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length) );Создавая таблицу, указываем ее имя, столбцы, их типы, ограничения размеров полей. В качестве непосредственного примера добавим таблицу комплекта сноубордиста:
tester=# CREATE TABLE snowboarder ( equip_id serial PRIMARY KEY, title varchar (50) NOT NULL, company varchar (25) NOT NULL, size varchar (25) check (size in ('XS', 'S', 'M', 'L', 'XL', 'XXL')) );СУБД выводит информацию:
CREATE TABLE- Equip_id — столбец с идентификатором типа serial и автоинкрементом. Ему присвоили свойство primary key, указывающее на использование не нулевых показателей.
- Title и company указывают наименование и фирму-производителя единицы комплекта.
- Size хранит размеры наименований комплекта, предлагая выбор одного из предложенных размеров.
tester=# \dList of relations Schema | Name | Type | Owner -----------+-------------------------------------+--------------+-------- public | snowboarder | table | tester public | snowboarder_equip_id_seq | sequence | tester (2 rows)Создана таблица с переменной snowboarder_equip_id_seq, тип данных sequence. Переменная указывает на номера последовательности и генерируется автоматически.
Вывести таблицу без переменной:
tester=# \dtList of relations Schema | Name | Type | Owner -----------+-------------------------------------+-------------+--------- public | snowboarder | table | tester (1 rows)Работа с данными таблицы
Таблица есть, остается ее наполнить.
Добавление данных в таблицу
Состав комплекта нашего сноубордиста: snowboard (сноуборд), binding (крепления), boots (ботинки). Вызовем таблицу, где укажем столбцы и их значения. Добавим 3 строки:
tester=# INSERT INTO snowboarder (title, company, size) VALUES ('snowboard', 'burton', 'XL'); tester=# INSERT INTO snowboarder (title, company, size) VALUES ('binding', 'burton', 'XL'); tester=# INSERT INTO snowboarder (title, company, size) VALUES ('boots', 'burton', 'XL');Пишем внимательно, избегая ошибок. Неверно использовать кавычки в названиях столбцов. Кавычки указываются в значениях столбцов. Значение столбца equip_id генерируется самостоятельно во время создания строки.
После добавления каждой строки СУБД подтверждает операцию:INSERT 0 1Вывод данных
Выведем таблицу с новыми данными:
tester=# SELECT * FROM snowboarder;equip_id | title | company | size --------------+----------------+-------------+------ 1 | snowboard | burton | XL 2 | binding | burton | XL 3 | boots | burton | XL (3 rows)Видим, что все поля заполнены значениями, прописанными нами, и в equip_id отображается нумерация строк.
Удаление данных
tester=# DELETE FROM snowboarder WHERE title = 'binding';СУБД подтвердит удаление строки:
DELETE 1tester=# SELECT * FROM snowboarder;equip_id | title | company | size --------------+----------------+-------------+------ 1 | snowboard | burton | XL 3 | boots | burton | XL (2 rows)Строка binding удалена.
Изменение данных
Иногда записи таблицы приходится менять. Для изменения записи указывают тип и устанавливают новое значение. Выберем boots и изменим компанию на blackfire:
tester=# UPDATE snowboarder SET company = 'blackfire' WHERE title = 'boots';СУБД подтвердит обновление строки:
UPDATE 1tester=# SELECT * FROM snowboarder;СУБД даст ответ:
equip_id | title | company | size --------------+----------------+----------------+------ 1 | snowboard | burton | XL 3 | boots | blackfire | XL (2 rows)Фирма-производитель ботинок изменилась на blackfire.
Работа со столбцами
Таблицы можно редактировать, меняя состав столбцов.
Добавление столбца
Введем столбец с отображением стоимости:
tester=# ALTER TABLE snowboarder ADD price varchar (25);СУБД подтвердит добавление:
ALTER TABLEВыведя таблицу, увидим пустой добавленный столбец, так как добавили его без указания данных. Как его заполнить данными, описано выше.
tester=# SELECT * FROM snowboarder;СУБД даст ответ:
equip_id | title | company | size | price --------------+----------------+----------------+------+------- 1 | snowboard | burton | XL | 3 | boots | blackfire | XL | (2 rows)Удаление столбца
Удалить столбец из таблицы:
tester=# ALTER TABLE snowboarder DROP price;Команда удалит столбец price и значения внутри него.
СУБД подтвердит удаление столбца:
ALTER TABLEУдаление таблицы
Удаляется таблица командой:
tester=# DROP TABLE snowboarder;СУБД подтвердит операцию:
DROP TABLEВведя команду \dt, увидим сообщение от СУБД:
Did not find any relations.Установка phppgadmin
Утилита PhpPgAdmin доступна в репозитории по дефолту в Ubuntu 22.04. Устанавливаем утилиту PhpPgAdmin под пользователем Ubuntu:
$ sudo apt-get install phppgadminКогда утилита установится, переходим в файл конфигурации phppgadmin.conf в директории /etc/apache2/conf-available и закомментируем строку Require local. Пропишем строку Allow From all. Такие изменения в файле конфигурации позволят подключаться к серверу как с локальной машины, так и с других устройств.
$ sudo systemctl restart apache2Удаление PostgreSQL
Перед удалением PostgreSQL и очисткой сервера от следов сервиса удостоверимся, что СУБД остановлена.
В аккаунте Ubuntu напишем, что хотим узнать:
$ ps -CpostgresЕсли СУБД остановлена, ответ на команду не должен показать никаких результатов. В ином случае, обслуживание нужно остановить. Остановить PostgreSQL:
$ sudo systemctl stop postgresql$ sudo apt-get --purge remove postgresql\*PostgreSQL удалена на нашей виртуальной машине.
После удаления пропишем команды:
$ sudo rm -r /etc/postgresql/ $ sudo rm -r /var/lib/postgresql/ $ sudo userdel -r postgres $ sudo groupdel postgresЗаключение
В этой инструкции мы развернули PostgreSQL на сервере Ubuntu 22.04.
Рассмотрели базовые функции по работе в СУБД:
- добавили роль, БД, таблицу;
- внесли в нее нужные нам значения;
- удалили таблицу и саму PostgreSQL.
Поскольку СУБД обладает множеством возможностей, рассчитанных на новых пользователей, со временем понадобятся и более продвинутые функции хранения и обработки данных. Все функции PostgreSQL можно изучить на странице официальной англоязычной версии документации.
Стоит отметить, что у PostgreSQL большое сообщество пользователей, а открытый исходный код СУБД способствует тому, что при новых релизах новые ошибки выявляются, быстро исправляются, и успешно осуществляется тестирование.
Подойдет ли PostgreSQL вообще всем проектам или нужны альтернативы
Как настроить репликацию в PostgreSQL
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.
Как подключить postgresql к c
Use ⇧⇧ (macOS), or Shift+Shift (Windows/Linux), to bring up the Search Everywhere dialog. You can now search for Database to open the Database tool window which helps you to connect to multiple databases and DDL data sources.
You click on the + (New) button. Select Data Source then Postgres as the data source type. Customize the name of the data source, connection details, then click on the Test link to ensure everything is ok.
Once everything is done, a Console tab will appear and you can now query the database from the IDE. You can also explore it from the Database tool window, and select which parts to hide or show from it.
Note: You may need to download a database driver for the IDE first. If you see a Download driver link, you’ll need to click on that before you can connect to the database.
Alternately, you can open Database tool window from the Sidebar of the IDE:

