summaryrefslogtreecommitdiff
path: root/MacOS
diff options
context:
space:
mode:
Diffstat (limited to 'MacOS')
-rw-r--r--MacOS/Homebrew.md1
-rw-r--r--MacOS/Postgresql.md113
2 files changed, 114 insertions, 0 deletions
diff --git a/MacOS/Homebrew.md b/MacOS/Homebrew.md
new file mode 100644
index 0000000..17d98e2
--- /dev/null
+++ b/MacOS/Homebrew.md
@@ -0,0 +1 @@
+`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
diff --git a/MacOS/Postgresql.md b/MacOS/Postgresql.md
new file mode 100644
index 0000000..57b6bda
--- /dev/null
+++ b/MacOS/Postgresql.md
@@ -0,0 +1,113 @@
+`brew install postgresql`
+
+_В автозагрузку:_
+`brew services start postgresql`
+
+_Запуск вручную:_
+`pg_ctl -D /usr/local/var/postgresql start`
+
+_Перезагрузка:_
+`brew services restart postgresql`
+
+_Проверка версии:_
+`brew info postgresql`
+
+_Инициализация по умолчанию:_
+`initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@14`
+
+_Экспортировать переменную:_
+`export PATH=/opt/homebrew/bin:$PATH`
+
+_Если автозагрузка не сработает, директория здесь:_
+`~/Library/LaunchAgents`
+
+_Создаем симлинк:_
+`ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents`
+
+_Добавляем в автозагрузку:_
+`launchctl load ~/Library?LaunchAgents/homebrew.mxcl.postgresql.plist`
+
+_Подключение к БД на MacOS (отличается от Linux). Проверяем пользователей:_
+`psql -l`
+
+![[Pasted image 20240312221215.png]]
+
+_Для подключения указываем Owner из таблицы выше:_
+`sudo psql -U vlapa -d postgres`
+
+_Создаем пользователя с паролем (сначала подключаемся как описано выше):_
+`CREATE USER ploshadka WITH PASSWORD '123456';`
+
+_Назначаем ему кодировку:_
+`ALTER ROLE ploshadka SET client_encoding TO 'utf8';`
+
+_Создаем БД для русской локали, чтобы была возможность поиска:_
+`CREATE DATABASE dbname TEMPLATE=template0 ENCODING 'UTF-8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8';`
+
+_Назначаем этому пользователю новую БД:_
+`GRANT ALL PRIVILEGES ON DATABASE dbname TO ploshadka;`
+
+_проверим по таблице все-ли верно:_
+`\list`
+
+_Как подключиться (на localhost достаточно создать БД и подключиться к ней указав только имя):_
+`dbname='stocks'`
+_Остальное подхватится по умолчанию._
+
+### Узнаем размер БД:
+
+_Заходим на сервер в оболочку Postgres:_
+`sudo psql -U vlapa -d postgres`
+
+_Проверяем размер:_
+`SELECT pg_size_pretty(pg_database_size('vlapa_db'));`
+
+### Узнаем размеры таблиц:
+
+_Находясь в оболочке Postgres входим в нужную БД:_
+`\c vlapa_db`
+
+_Вводим команду отсортировать таблицы по большему размеру:_
+```bash
+SELECT nspname || '.' || relname AS "relation",
+    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
+  FROM pg_class C
+  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
+  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
+    AND C.relkind <> 'i'
+    AND nspname !~ '^pg_toast'
+  ORDER BY pg_total_relation_size(C.oid) DESC
+  LIMIT 20;
+```
+
+##################################################
+
+_PostgreSQL - SQL команды:_
+
+Как добавить колонку в правильное место:
+```bash
+alter table tablename rename to oldtable;
+create table tablename (column defs go here);
+insert into tablename (col1, col2, col3) select col1, col2, col3 from oldtable;
+```
+
+_Как добавить колонку в конец:_
+```sh
+ALTER TABLE portfolio ADD COLUMN price_diff_open_current FLOAT NULL;
+```
+
+_Переименовать таблицу:_
+```sh
+alter table portfolio rename column lots to quantity;
+```
+
+_Обновить всю колонку одним значением:_
+```sh
+UPDATE operations SET user_id='1'
+```
+
+_Переименовать базу данных:_
+```sh
+alter database "stocks" rename to "captures";
+```
+