VSCode — Disable ALL Auto Formatting on Save

Had the same problem, just bind ‘cmd + s’ to saving without formatting. press cmd+shift+p then search for save without formatting and click on the configure icon, then bind it with ‘cmd + s’, problem gone 🙂

Awesome. Followed your advice: View>Command pallete> typed «Save» on the text search field. See «File: Save without formatting» on far right cog-wheel icon setting (clicked it),

https://stackoverflow.com/questions/61827206/vscode-disable-all-auto-formatting-on-save

Очистка от лишних образов docker

Удаление контейнеров

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

Удаление образов

docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi

According to the doc, the following command will delete images older than 48 hours.

docker image prune --all --filter until=48h

Зеркало для docker

Альтернативное зеркало для docker

"https://dockerhub.timeweb.cloud/"

В файл etc/docker/daemon.json добавляем:

"registry-mirrors": [
    "https://mirror.gcr.io/",
    "https://dockerhub.timeweb.cloud/"
  ]

Чтобы сохранить образы в собственный репозиторий можно воспользоваться:

docker pull ubuntu:20.04
docker tag ubuntu:20.04 my-registry/ubuntu:20.04
docker push my-registry/ubuntu:20.04

В этом примере показана возможность сохранить образ ubuntu:20.04 в собственном репозитории

Виртуальное окружение Python (venv)

Для создания виртуального окружения, перейдите в директорию своего проекта и выполните:

python -m venv venv

-m — флаг для запуска venv как исполняемого модуля.

venv — название виртуального окружения (где будут храниться ваши библиотеки).

В результате будет создан каталог venv/ содержащий копию интерпретатора Python, стандартную библиотеку и другие вспомогательные файлы. Все новые пакеты будут устанавливаться в venv/lib/python3.x/site-packages/.

Активация

Чтобы начать пользоваться виртуальным окружением, необходимо его активировать:

  • venv\Scripts\activate.bat — для Windows;
  • source venv/bin/activate — для Linux и MacOS.

source выполняет bash-скрипт без запуска дополнительного bash-процесса.

Проверить успешность активации можно по приглашению оболочки. Она будет выглядеть так:

(venv) root@server:/var/test#

Также новый путь до библиотек можно увидеть выполнив команду:

python -c "import site; print(site.getsitepackages())"

Автоматическая активация

В некоторых случаях, процесс активации виртуального окружения может показаться неудобным (про него можно банально забыть 🤷‍♀️).

На практике, для автоматической активации перед запуском скрипта, создают скрипт-обертку на bash:

#!/usr/bin/env bash

source $BASEDIR/venv/bin/activate
python $BASEDIR/my_app.py

Теперь можно установить права на исполнение и запустить нашу обертку:

chmod +x myapp/run.sh
./myapp/run.sh

Деактивация

Закончив работу в виртуальной среде, вы можете отключить ее, выполнив консольную команду:

deactivate

Оригинал статьи: https://pythonchik.ru/okruzhenie-i-pakety/virtualnoe-okruzhenie-python-venv

Создание команды INSERT в PostgreSQL для таблиц

Данный способ позволяет создать скрипт INSERT для наполнения таблицы PostgreSQL.

pg_dump -a -U postgres -t table_name -f output_name.sql --inserts --column-inserts --on-conflict-do-nothing database_name

Описание параметров:

  • a — Выгружаются только данные, а не схема (определения данных). Выгружаются табличные данные, большие объекты и значения последовательности. Этот параметр аналогичен, но по историческим причинам не идентичен параметру, определяющему --section=data.
  • U — Имя пользователя для подключения как.
  • t — Дамп только таблиц с совпадающими именами
  • f — Отправляйте выходные данные в указанный файл. Этот параметр можно опустить для файловых форматов вывода, в этом случае используется стандартный вывод. Однако он должен быть указан для формата вывода каталога, где указывается целевой каталог, а не файл. В этом случае каталог создан pg_dump и не должен существовать ранее.
  • inserts — Дамп данных в виде INSERT команд (а не COPY). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицы, INSERT а не всего содержимого таблицы. Обратите внимание, что восстановление может завершиться полным сбоем, если вы изменили порядок столбцов. Опция --column-inserts защищает от изменений порядка столбцов, хотя и работает еще медленнее.
  • column-inserts — Дамп данных в виде INSERT команд с явными именами столбцов (INSERT INTO table (column, ...) VALUES ...). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицы INSERT, а не всего содержимого таблицы.
  • on-conflict-do-nothing — Добавить команды ON CONFLICT DO NOTHING в INSERT. Этот параметр недопустим, если также не указано --inserts--column-inserts или --rows-per-insert.

Пример:

pg_dump -a -U postgres -t dbo.cs_point_types -f cs_point_types.sql --inserts --column-inserts --on-conflict-do-nothing skr-dev-db

https://www.postgresql.org/docs/current/app-pgdump.html