Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Герои Войны - микс стратегии и РПГ. Собери лучшую армию и победи всех врагов. В игре 7 различных режимов - как для любителей PvE, так и PvP.

Герои Войны

Стратегии, Мидкорные, Экшены

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Postgres

С этим тегом используют

Postgresql IT SQL Все
21 пост сначала свежее
291
flugger
flugger
1 год назад
Лига образования

Бесплатная книга про PostgreSQL 16⁠⁠1

Точно будет супер полезная для всех изучающих SQL, вкатывающихся в айтишечку и просто развивающихся.

Postgres Professional выложила в свободный доступ книгу «PostgreSQL 16 изнутри» — лучшее что есть о PostgreSQL, да ещё и на русском языке. Автор книги — Егор Рогов, директор по разработке образовательных программ в Postgres Professional.

Что интересно, книга изначально написана на русском, и только потом переведена на английский, что как бы намекает на уровень.

В электрическом виде можно забрать прямо на сайте Postgres Professional. А при желании понюхать бумаг, надо идти в сторону сайта издательства ДМК Пресс.

Postgres SQL Программист IT Текст
33
12
tricky88
1 год назад

Простой бэкап базы данных Postgres и статики для небольшого Django-проекта⁠⁠

Друзья, всем привет!
Помимо основной работы инженером данных, я поддерживаю небольшой сайт на Django (посвящен информационным материалам по преподаванию истории и обществознания).

Так как материалы на сайт добавляются довольно часто, а также регистрируются новые пользователи, конечно же возникла идея, как бы правильно организовать бэкап базы данных - чтобы я мог легко синхронизировать данные на сервере с данными, лежащими в базе на рабочем компьютере.

Сразу скажу, что такой подход подойдет для баз, размер которых не является астрономическим (сотни гигабайт), в моем случае база весит всего 50 Мб, статика около 400 - поэтому мне не составляло большого труда синхронизировать такие объемы. Думаю, небольшие и даже средние интернет магазины и блоги вряд ли хранят на порядки больше данных.

Для больших проектов, лучше бэкапы архивировать, шифровать и отправлять куда нибудь в s3 типа  Minio.

Когда новая инфа на сайте появлялась довольно редко, я все делал руками, а именно:

  • заходил на удаленный сервер, где крутится сайт,  по ssh

  • выполнял команду для создания полной копии БД
    sudo -u postgres pg_dumpall -c -f {remote_db_copy_file_path

  • потом переключался в терминал ос рабочего ноута, создавал папку с названием, соответствующем дате бэкапа

  • с помощью утилиты scp, копировал с удаленной машины с сайтом бэкап, полученный в пункте 2 - т.е. типа такой команды
    scp -r {remote_user}@{remote_host}:{remote_media_path} {local_media_full_path}

  • опять же с помощью scp копировал статику с файлами из папки

  • удалял файл бэкапа из папки на удаленном сервере

У такого подхода главный минус - это потраченное время, а также возможная путаница с названиями скопированных файлов и папок.
Поэтому настал час, когда я решил автоматизировать свою работу и написал скрипт на Python, автоматизирующий рутину по созданию бэкапа.
Сам скрипт лежит вот здесь, в моем GitHub, скачивайте и пользуйтесь.

https://github.com/Riddik1993/DB-and-static-copy-from-remote

Давайте более подробно рассмотрим, как он работает:

  1. Делается подключение по ssh с помощью библиотеки paramiko, сделал с помощью файла rsa-key, который paramiko ищет автоматом, соответственно пароль указывать не надо

В скрипте за подключение отвечает функция _initialize_ssh_client

  1. Получаем название файла с копией БД, которую необходимо будет создать, с помощью функции _get_db_copy_remote_filename. Принцип простой, берем текущее время и дату, и подставляем в название файлика, получается что то типа “01072023_155045.sql". К этому имени подставится путь, взятый из переменной окружения REMOTE_DBCOPY_FOLDER

  2. Похожим образом задаются переменные, чтобы понимать, куда потом надо сложить на локальной машине копию базы, и как назвать папку для копии статических файлов. Т.е. это маленькие функции _get_db_copy_full_path и _create_local_media_folder, тоже работающие с переменными окружения

  3. Функция make_db_backup собственно делает сам бэкап, через команду pg_dumpall, предварительно выдав права юзеру postgres на папку, куда положится бэкап

  4. Бэкап грузится на локальную машину (upload_db_backup_to_local_machine)

  5. Старые бэкапы  удаляются с сервера (delete_old_copies_on_remote). Важно отметить, что срок актуальности бэкапа в днях можно задать в конфиге через переменную old-db-copies-exp-period. Потом данный период подставится в команду утилиты find.

  6. Ну и в конце, функция copy_media_files_to_local перекачивает статику с сервера на локальную машину

С алгоритмом работы понятно, теперь давайте распишу, что вам надо сделать, чтобы у Вас тоже все запустилось и работало,

  1. Иметь интерпретатор питона на локальной машине

  2. Скачать репозиторий с моего гитхаба https://github.com/Riddik1993/DB-and-static-copy-from-remote

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

Также это стоит сделать и не только ради скрипта с копированием базы, но и просто из соображений безопасности - так как по паролю ваш сервер гораздо легче взломать чем через ключ rsa

  1. Находясь в папке скаченного репозитория, вводим в терминале команду pip install requirements.txt и ставим нужные для скрипта зависимости. Если не хотите ставить их глобально, но создайте виртуальное окружение сначала и ставьте туда

  2. Обращаем внимание на файл config.conf. Надо создать переменные окружения, которые указаны внутри фигурных скобок - это можно сделать, отредактировав файл ~/.bashsrc

Просто открываем этот файлик, добавляем строчки такого формата

export REMOTE_USER=”username”

Сохраняем, вводим команду

source ~/.bashsrc

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

  1. Когда все сделано, в терминале в папке репозитория запускаем команду python3 make_db_media_copy.py

В выводе вы увидите логирование всех стадий работы скрипта.

Простой бэкап базы данных Postgres и статики для небольшого Django-проекта Гайд, Python, Джанго, Postgres, Длиннопост

Файл с копией базы положился в папку, название которой хранится в переменной LOCAL_DBCOPY_PATH

Простой бэкап базы данных Postgres и статики для небольшого Django-проекта Гайд, Python, Джанго, Postgres, Длиннопост

Медиафайлы положились в папку, которую скрипт предварительно создал, в указанной нами директории LOCAL_MEDIA_PATH

Простой бэкап базы данных Postgres и статики для небольшого Django-проекта Гайд, Python, Джанго, Postgres, Длиннопост

Если что то упало - в принципе будет ясно почему (смотри скриншот с логами). Но если что. пишете в комментариях - всегда рад помочь)

Простой бэкап базы данных Postgres и статики для небольшого Django-проекта Гайд, Python, Джанго, Postgres, Длиннопост

Также пишите, как делаете логирование Вы)

Если понравилось, буду рад приветствовать вас в своем телеграм канале, куда публикую интересные обзоры питон-функций, разборы задачек с собеседований, ну и просто интересные мысли.

Показать полностью 4
Гайд Python Джанго Postgres Длиннопост
7
DELETED
2 года назад

Как запустить сервер Postgres⁠⁠

Аллоха! Прошу помочь чайнику)

Ситуация: К стационарному компу подключил съемный HDD, на него поставил postgresql. Теперь съемный HDD подключил к ноутбуку, чтобы через dbeaver поработать с БД. Но прикол в том, что сервер не запущен.

Вопрос: как запустить теперь сервер на ноутбуке?

Сразу спасибо за помощь, если она будет)

Postgresql Postgres Localhost Компьютерная помощь Текст
6
user5305031
user5305031
2 года назад

PostgreSQL установка и подключение к демо базе данных⁠⁠

Сейчас узучаю базы данных, скачал учебник для ознакомления. В нём приведены примеры для демо базы данных, которую я замонался подключать. Вот небольшая инструкция: Как подключить демо базу данных. Книгу можно найти тут.

Небольшая ремарочка, я использую линукс минт на английском языке.

  1. установка postgres в вашу систему, для линукс:

    sudo apt-get update

    sudo apt-get install postgrespro-std-14

  2. так как в базе используется русская раскладка, пришлось переключиться на отображение русского языка. Используем следующие команды:

    export LC_CTYPE=ru_RU.UTF8

    export LC_COLLATE=ru_RU.UTF8

  3. далее заходим в рабочию среду postgres, вводим в терминале

    sudo su - postgres

  4. скачаем демо базу данных

    wget https://edu.postgrespro.ru/demo-small.zip

  5. проверяем скачалась ли база, вводим в терминале ls

  6. в руководстве было написано использовать команду: zcat demo-small.zip | psql Но, она у меня так и не заработала. Пришлось распаковать базу данных.

    unzip demo-small.zip

  7. Далее вводим

    postgres# \i demo-small-20170815.sql

  8. Поздравляю! Вы подключись! Вы великолепны! После подключения и выполнения запроса, терминал выглядит так:

Надеюсь, Вам поможет моё руководство. Спасибо за внимание!

Предложения, пожелания приветствуются.

Показать полностью
[моё] Linux Учеба Программирование Python Postgres Текст
35
Fckngrdnz
Fckngrdnz
2 года назад

Помощь с Postgres⁠⁠

Люди, человеки, мастера Postgres, очень нужна помощь (возмездная! ) в решении пары задачек по основам Postgres. Работодатель уж послал, так послал меня повышать квалификацию, но ребята на курсах решили отбить всё уплоченные бабки и упихали в курс невпихуемое, включая базы данных, с которыми работа у меня планируется примерно никогда (штоп я сдохла). Тренировочная база bookings, многим известная, мать её в коробушку, и несколько задачек, подвластных человеческому уму, но не моим двум извилинам. Выручайте, а то хочется точить слезу каждый раз в три ночи, когда я после работы решаю эту дрянь собачью. Торжественно клянусь не идти работать никуда, где нужен постгрес впоследствии и не похерить тем самым отечественную экономику)

Postgresql Postgres SQL Помощь Текст
8
1
serge21
2 года назад

Восстановление PostgresSQL⁠⁠

Повредилась база данных Postgres, не могу создать дамп

ошибка дампа

Восстановление PostgresSQL Linux, Postgres, SQL

ошибка реиндекса

Восстановление PostgresSQL Linux, Postgres, SQL

подскажите куда копать?

Linux Postgres SQL
14
10
SlyVolunteer
SlyVolunteer
2 года назад
IT - Менеджмент

Российский аналог Jira — EvaProject: SaaS ПО для управления проектами. Критика⁠⁠

Вот опять, очередной «Российский аналог ...». Как и соцсеть ВКонтакте, которая сделана братьями Дуровыми изначально российским аналогом Facebook* (*владелец бренда Meta — запрещённая в России организация). Что мы значимого сделали в ИТ не как аналог чего-то успешного?

Почему так происходит уже 20 лет? Почему наши "предприниматели" хотят быстрых денег здесь и сейчас? Хотя наших разработчиков с удовольствием используют западные бизнесмены — значит, потенциал же есть. И не только в космической отрасли, которая его подрастеряла после 80-х. Не только в ВПК, который производит оборонных ракет ПВО столько же, сколько весь остальной мир ( https://tass.ru/armiya-i-opk/16829181/ ).

И снова вроде крутой продукт, востребованный. Но почему цены такие конские, сравнимые с лицензией оригинала? Почему попробовать бесплатно можно только оставив контакты?

Из российских продуктов только СУБД Postgres хоть как-то адекватно подходит под мои претензии. И то это изначально opensource проект американского ученого Майкла Стоунбрейкера, профессора Калифорнийского университета. Наши дельцы подсуетились, даже получили лицензию ФСБ для её внедрения госорганами и организациями — и вот она, российская СУБД. Но хотя бы дают бесплатную версию as is, без гарантий. И лицензии с разовым платежом для тех, кто не хочет платить бесконечно за подписку, тем более за каждого пользователя/подключение.

Вспоминаю прекрасный пример Microsoft, подсадившей весь мир на Windows. Кажется, даже Билл Гейтс в одном из интервью проговорился, мол, пусть домашние юзеры и малый бизнес пиратят и обучаются работе в нашей ОС, а мы потом заработаем на крупном бизнесе, когда они в него превратятся или придут туда работать. Это я называю стратегическим мышлением. Если бы не было пиратства — сколько Майкрософту пришлось бы потратить на рекламу, на которую сейчас не тратится практически ничего?

В 2002 году компания объявила временный мораторий на борьбу с интернет-кафе и компьютерными клубами России и стран СНГ, использующими нелицензионное (ворованное) программное обеспечение Microsoft. Не удивлюсь, если сами же его и раздавали на торрентах.

"Мы не будем обращаться в правоохранительные органы с просьбой о проведении проверок, а также не намерены выступать с заявлением о возбуждении уголовных дел, даже если правоохранительные органы в ходе проверок в любом из интернет-кафе выявят нарушения авторских прав корпорации". ( https://www.kommersant.ru/doc/318389 )



И волна антипиратских дел по Винде и Офису в конце нулевых - начале 2010-х не по их инициативе по России прокатилась. Управление К просто "рубило палки".

Дофига написал, резюмирую. С таким подходом EvaProject навсегда останется локальным российским продуктом, выживающим только благодаря "импортозамещению". Да и в России доля рынка будет сравнима с "российскими операционными системами" (даже в т.ч. без кавычек ОС РОСА ХРОМ для процессоров Байкал, потому что купить его и попробовать её уж слишком дорого для домашних юзеров). Просто потому что есть Jira, а это очередной "российский аналог".

- Дать ее бесплатно, чтобы через 10 лет на нее подсела вся Россия и страны БРИКС? ❌
- Напишем «российский аналог» и сразу поставим цены оригинала! ✅

Не стесняюсь называть себя патриотом, выбираю продукты российского производства. Но почему патриотами бывают только потребители? У бизнеса другая родина — та, которая печатает зелёные бумажки?

Показать полностью
[моё] Jira Импортозамещение Postgres Postgresql Microsoft Windows IT Менеджмент Управление проектами Текст Патриотизм Патриоты
24
user5467549
2 года назад

Какие игдексы существуют в PostgreSQL⁠⁠

Какие игдексы существуют в PostgreSQL PHP, Алгоритм, Postgres, Postgresql, Разработка, Длиннопост, Программирование

B-дерево - это алгоритм индексирования, который используется в PostgreSQL. Он основан на идее разделения данных на несколько секций, которые называются узлами дерева. Каждый узел содержит набор ключей и ссылок на дочерние узлы. Поиск значения в B-дереве осуществляется путем последовательного перехода по узлам дерева, начиная с корневого узла, и сравнения искомого ключа с ключами в текущем узле. Этот алгоритм обеспечивает быстрое поиск, вставку и удаление данных, особенно в случае большого объема данных.

Узел дерева - это элемент структуры данных, который содержит информацию и ссылки на другие узлы. В B-дереве, каждый узел содержит набор ключей и ссылок на дочерние узлы. Корневой узел дерева является вершиной, откуда начинается обход дерева. Узлы ниже корня называются потомками. Каждый узел может иметь одного или несколько дочерних узлов, которые соответственно называются листьями дерева. Листья являются конечными узлами дерева и не содержат дочерних узлов.

B-дерево является структурой данных, которая может быть реализована в различных языках программирования, включая PHP. Чтобы реализовать B-дерево в PHP, вы можете создать класс, который описывает узел дерева и содержит методы для добавления, удаления и поиска элементов в дереве.

Некоторые из основных методов, которые вы можете реализовать в классе B-дерева в PHP, могут включать:

  • insert($value) - добавляет новое значение в дерево

  • delete($value) - удаляет значение из дерева

  • search($value) - ищет значение в дереве и возвращает true, если найдено, и false в противном случае

  • getMinimum() - возвращает минимальное значение в дереве

  • getMaximum() - возвращает максимальное значение в дереве

Важно отметить, что реализация B-дерева может быть сложной и требует некоторой предварительной

подготовки и знания алгоритмов и структур данных. Вам также может потребоваться протестировать и отладить ваш код для обеспечения корректной работы.

В PHP так же можно использовать сторонние библиотеки для реализации B-дерева, к примеру, "btree" или "B-tree" или "php-btree". Использование сторонних библиотек может значительно упростить процесс реализации B-дерева в вашем PHP-коде и обеспечить более надежную и оптимизированную реализацию.

Так же стоит отметить time complexity и space-complexity

Time complexity B-дерева обычно определяется как O(log n), где n - это количество элементов в дереве. Это достигается за счет того, что каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, таким образом максимальная глубина дерева ограничена log(n/t).

Space complexity определяется как O(n), где n - это количество элементов в дереве. Это означает, что память, необходимая для хранения дерева, зависит от количества элементов в дереве. Каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, поэтому количество узлов в дереве будет ограничено n/t.

Однако, необходимо учитывать, что в B-дереве также может быть использован дополнительный объем памяти для хранения информации о дочерних узлах и других метаданных.

"Introduction to Algorithms" авторы: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Эта книга считается одним из лучших учебников по алгоритмам и структурам данных и включает подробное описание B-дерева и других структур данных.

"Database Systems: The Complete Book" автор: Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom. Эта книга посвящена базам данных и включает подробное описание B-дерева и других индексных структур, используемых в базах данных.

"Algorithms in C++" автор: Robert Sedgewick. Эта книга предоставляет практическое руководство по алгоритмам и структурам данных на языке С++ и включает код для реализации B-дерева.

Спасибо за дополнения и замечания https://t.me/gasoid

Ещё больше полезной информации тут https://vk.com/work2oq

Показать полностью 1
[моё] PHP Алгоритм Postgres Postgresql Разработка Длиннопост Программирование
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии