Недавно я начал работать над личным проектом, который включает в себя базу данных в задней части. Будучи в основном фронтенд-инженером, я уже много лет не настраивал базу данных. Ниже приведены основные шаги для начала работы с 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)