Postgres: Настройка и основы

Недавно я начал работать над личным проектом, который включает в себя базу данных в задней части. Будучи в основном фронтенд-инженером, я уже много лет не настраивал базу данных. Ниже приведены основные шаги для начала работы с postgresql.

Установка

Я буду устанавливать postgres с помощью Homebrew, менеджера пакетов, используемого для Mac/Linux. Если у вас не установлен Homebrew, вот ссылка. Теперь откройте окно терминала и приступайте к работе.

Начнем с обновления homebrew, чтобы убедиться, что у нас последняя версия:

brew update
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем мы установим postgres:

brew install postgresql
Войти в полноэкранный режим Выйти из полноэкранного режима

После установки запустим службу:

brew services start postgresql
Войти в полноэкранный режим Выход из полноэкранного режима

Теперь Postgres установлен и запущен. Вы можете остановить службу в любое время с помощью:

brew services stop postgresql
Войти в полноэкранный режим Выйти из полноэкранного режима

Войдите в postgres и создайте пользователя

psql — это терминальное приложение для postgres. Он подключается к postgres и позволяет нам создавать базы данных, пользователей, создавать запросы и т.д..

Сначала нам нужно войти в psql как пользователь root по умолчанию:

psql postgres
Войти в полноэкранный режим Выход из полноэкранного режима

Теперь мы вошли в систему как пользователь root. В командной строке вы должны увидеть следующее:

postgres=#
Войти в полноэкранный режим Выйти из полноэкранного режима

Вот список некоторых распространенных команд postgres, которые вы будете использовать теперь, когда мы вошли в систему:

q - quit/exit psql
list - lists all databases
du - lists all database roles
dt - lists all database tables
conninfo - lists info about current database connection
c [dbname] - connect to a different database 
CREATE DATABASE [dbname]; - creates a new database
CREATE USER [username]; - creates a new user
ALTER ROLE [username] CREATEDB; - allows user to create databases
ALTER ROLE [username] CREATEROLE; - allows user to create roles
DROP DATABASE [dbname]; - deletes database
DROP USER [username]; - deletes a user
Войти в полноэкранный режим Выйти из полноэкранного режима

В настоящее время мы вошли в систему под пользователем root, использование этого пользователя в postgres обычно не практикуется, поэтому давайте создадим нового пользователя, которого мы будем использовать для выполнения действий с базой данных, и предоставим ему некоторые базовые права:

postgres=# CREATE USER username WITH PASSWORD 'password';
postgres=# ALTER ROLE username CREATEDB CREATEROLE;
Вход в полноэкранный режим Выйти из полноэкранного режима

Теперь мы создали нового пользователя под именем username с паролем и дали ему разрешение на создание баз данных и ролей/пользователей. Вы можете проверить это, запустив du, и вы должны увидеть своего пользователя в списке.

Выйдите из под пользователя root и войдите под именем нашего нового пользователя:

postgres=# q
Войдите в полноэкранный режим Выход из полноэкранного режима
psql -d postgres -U username
Войти в полноэкранный режим Выход из полноэкранного режима

Примечание: -d указывает, в какую базу данных мы входим (мы входим в базу данных postgres по умолчанию), -U указывает, под каким пользователем мы входим.

Теперь вы должны увидеть:

postgres=>
Вход в полноэкранный режим Выход из полноэкранного режима

Создание базы данных и таблиц

Давайте создадим новую базу данных:

postgres=> CREATE DATABASE dbName;
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы воспользуетесь командой list, вы увидите в списке вашу новую базу данных. Поздравляем, вы только что создали базу данных в postgres! Отсюда вы можете добавлять таблицы и данные в вашу базу данных непосредственно в psql, однако я бы рекомендовал делать это в таких инструментах, как TablePlus или pgAdmin, поскольку они намного проще в визуальном плане и не требуют запоминания команд SQL. Однако вот базовый пример в psql для таблицы сообщений.

Чтобы создать таблицу:

dbname=> CREATE TABLE messages (
   id SERIAL PRIMARY KEY,
   name VARCHAR(30),
   message TEXT
);
Войдите в полноэкранный режим Выйти из полноэкранного режима

Чтобы добавить данные в эту таблицу:

dbname=> INSERT INTO messages (name, message) VALUES ('Donald Duck', 'Qwack Qwack');
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем проверить наши данные:

dbname=> SELECT * FROM messages;
Войти в полноэкранный режим Выйти из полноэкранного режима

Результат:

id |    name     |   message
----+-------------+-------------
  1 | Donald Duck | Qwack Qwack
(1 row)
Войти в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий