• На основании чего PostgreSQL сортирует данные в JSONField?

    fzfx
    @fzfx
    18,5 дм
    в PostgreSQL строка типа jsonb будет хранить ключи, отсортированные в лексикографическом порядке, что вы и демонстрируете.
    если хотите сохранить порядок, который был при вставке - используйте тип json. но в этом случае формат хранения отличен от jsonb (по факту более приближен к text, насколько я знаю), и для операций, доступных только для jsonb (если таковые есть) придётся кастовать json в jsonb.
    Ответ написан
    Комментировать
  • Как вернуть свои данные в PgAdmin4?

    fzfx
    @fzfx
    18,5 дм
    Видать где-то что-то вы сделали не так.
    Например, за другим АРМ вы подключились не к БД одного АРМ, а к БД другого АРМ.
    Или смотрите куда-то не туда.
    Или те данные не сохранили в БД на одном АРМ.
    Если бы вы привели команды, которыми вы подключаетесь к БД с одного АРМ и с другого АРМ, а также запрашиваете данные на одном АРМ и другом АРМ, возможно, что-то стало бы понятнее.
    Ответ написан
    1 комментарий
  • Что делать с чужим Макбуком?

    fzfx
    @fzfx
    18,5 дм
    Отнести в полицию.
    Ответ написан
    Комментировать
  • Как написать регулярное выражение для удаления последней директории из строки?

    fzfx
    @fzfx
    18,5 дм
    Как-то так:
    https://regex101.com/r/4RtFBJ/1
    Ответ написан
    Комментировать
  • Не подписываются письма при корректной работе DKIM?

    fzfx
    @fzfx
    18,5 дм
    Очевидно, под словом "подпись" имеется ввиду не "DKIM", а что-то другое, например, PGP, GPG, S-MIME или иная подпись сертификатом.
    Точнее не скажу, потому что угадать почтовый клиент не могу.
    Корректность подписи DKIM проверяется серверами получателя письма, а результат проверки как правило добавляется в заголовки письма.
    Если при отправке с вашего почтовика, на, скажем, адресата с почтой на gmail.com у этого адресата в полученном письме в заголовках говорится о том, что проверка DKIM passed, значит всё с DKIM в порядке.
    Ответ написан
  • Как в PostgreSQL для определенных пользователей поставить idle_in_transaction_session_timeout?

    fzfx
    @fzfx
    18,5 дм
    alter role username set idle_in_transaction_session_timeout = '1000min';
    вестимо.
    возможно потребуется этим пользователем переподключиться, к сожалению, не в курсе, применяется ли это к уже имеющимся сессиям на стороне PostgreSQL.
    Ответ написан
    1 комментарий
  • Норм ли дешёвый процессор?

    fzfx
    @fzfx
    18,5 дм
    Это скорее раритет для тех, кто знает, зачем ему именно этот проц. Этому семейству процессоров лет эдак 15, если не ошибаюсь, то есть древнее старьё. отдать за него 20 баксов норм, если ты его потом зальёшь эпоксидкой и поставишь в рамочку. Или если у тебя какой-то промышленный девайс работает именно на этом семействе процов и у тебя нет выхода кроме как искать именно и покупать именно его.
    Но вообще, судя по аукционам, цена в 20 баксов - многовато, стоит он на аукционах сейчас 5-10 баксов.
    Ответ написан
    Комментировать
  • PostgreSQL в Django проекте не отображает файл базы данных?

    fzfx
    @fzfx
    18,5 дм
    postgresql хранит базу данных не в одном файле, а во множестве файлов в разветвлённой группе каталогов. данный каталог задаётся при запуске сервера postgresql, и он не должен размещаться в каталогах каких-либо других программ, проектов и т. п. (вплоть до того, что доступ на корневой каталог данных БД выдаётся только пользователю и группе postgres). ну т. е. если вы установили сервер postgresql, то файл базы данных есть, и не один, просто в том месте, где должен быть, а не в том, в котором вам кажется уместным. =)
    подключение к БД происходит либо по протоколу TCP, либо через unix-сокет, а не через какой-то файл базы данных. как именно это правильно делать - читайте документацию к вашему фреймворку по работе с postgresql.
    Ответ написан
    1 комментарий
  • Nginx и php в докере, где искать файлы веб сервера?

    fzfx
    @fzfx
    18,5 дм
    Вам следует ознакомиться с документацией на образ php, там будет сказано, какой каталог в нём используется в качестве корневого (и это не /var/www/html).
    Ответ написан
    3 комментария
  • Исключение в редиректе nginx?

    fzfx
    @fzfx
    18,5 дм
    Добавить негативный просмотр вперёд для исключаемого адреса в нужное место:
    ^/(?!admin/$)(.*)/$
    Т. е. если после символа "/", идущего в начале строки, находится заданная в группе "(?!)" последовательность "admin/" и признак окончания строки, регулярное выражение считается несовпадающим.
    Ответ написан
    Комментировать
  • Как сделать все IPv6-адреса в подсети/64 доступными для использования?

    fzfx
    @fzfx
    18,5 дм
    Для сетевого интерфейса IP адреса, которые он должен использовать, должны указываться явно, и в IPv6 по сравнению с IPv4 тут ничего не поменялось.
    Видимо таково ограничение у netplan - 200 одновременных IP на одном интерфейсе. Хотя может и ограничение ядра, тут я не подскажу.
    Ну и самое приятное - тех, кто использует IPv6 для доступа к сайту, обычно банят сразу целой подсетью по маске /64. Если в вашем случае этого не происходит и банят только по 1 IP за раз - что ж, повезло, но вообще я бы сильно не удивлялся на вашем месте, если (когда) получил бы блок на всю вашу IPv6-подсеть.
    Ответ написан
    Комментировать
  • Как развернуть nginx для nodejs и react?

    fzfx
    @fzfx
    18,5 дм
    Уберите концевой слеш в proxy_pass.
    Ответ написан
    Комментировать
  • Умеет ли load balancer в Nginx проксировать на URL (не IP)?

    fzfx
    @fzfx
    18,5 дм
    Оказалось, что в таком виде Nginx проксирует запрос не на домен, а на его IP

    Раскройте вашу проблему касаемо этого. Nginx всегда проксирует запрос на IP, другое дело, что если вместо IP указано доменное имя и оно нормально резолвится, а в nginx задана директива resolver, то по доменному имени Nginx вполне себе сможет получить IP для проксирования. Раскройте, что имеется ввиду под тем, что у вас проблема с тем, что "Nginx проксирует запрос не на домен, а на его IP"?
    Возможно вы имели ввиду то, что без передачи заголовка Host с именем домена целевого бекенда у вас не работает проксирование, потому что бекенды ожидают запросов только на отдельные доменные имена, отличающиеся от основного и друг от друга? Вообще обычно так не делают, и бекенды настраивают на работу с тем же доменным именем, что используется на фронте, но если прям очень надо, то в таком случае следует заменить блок upstream на блок split_clients:
    split_clients $request_uri $site_backend {
                  50%          site2.ru;
                  *            site3.ru;  
    }

    Добавить перезапись заголовка Host:
    proxy_set_header Host $site_backend;
    И поправить директиву proxy_pass:
    proxy_pass https://$site_backend;

    и не в корневую директорию как раньше, а в /folder.

    А это потому что вы умудрились потерять концевой слеш в директиве proxy_pass.
    Ответ написан
    4 комментария
  • Что происходит в момент добавления нового столбца в БД?

    fzfx
    @fzfx
    18,5 дм
    я не понял, что имеется ввиду под дозаписью колонки в существующую структуру. если колонка создаётся без указания default-значения, то перезаписи строк в таблице не происходит, меняется лишь заголовочная часть (в которую добавляется информация о новой колонке) и битовая карта null'ов (относительно дешёвая операция). если колонка создаётся с указанием default-значения, то происходит пересоздание (удаление и новая вставка) всех строк в таблице с добавлением нового поля с default-значением (со всеми вытекающими в виде сбросов грязных страниц на диск, частичным вымыванием кеша, генерацией WAL, запусками автовакуума). индексы при этом также перезаписываются в моменты проходов автовакуума (при вычищении мёртвых версий строк указатели в индексах меняются на актуальные версии строк).
    Ответ написан
  • Как автоизвлечь все гиперссылки из документа в формате docx?

    fzfx
    @fzfx Автор вопроса
    18,5 дм
    Под Linux можно использовать утилиты unzip и perl. Для perl предварительно должен быть установлен пакет XML::LibXML.
    Допустим, имя документа - ~/Document.docx.
    Тогда:
    unzip -p ~/Document.docx word/document.xml |\
    perl -0e 'use XML::LibXML; use open ":encoding(utf8)"; open($fh, "</dev/stdin"); $dom = XML::LibXML->load_xml(IO => $fh); foreach ($dom->findnodes("//w:hyperlink")) { print $_->findvalue(".")."\n"; }'
    Ответ написан
    Комментировать
  • Как найти разницу межу двумя датами, если даты на разных строках?

    fzfx
    @fzfx
    18,5 дм
    Если переименовать колонку "date" в "r_date", а таблица называется "testtable04", то, воспользовавшись функциями min и max, а также группировкой, можно сделать как-то так:
    select id, max(r_date) - min(r_date) minute_difference from testtable04 group by id;

    Пример.
    Ответ написан
  • Как настроить nginx для Django + telegram webhooks?

    fzfx
    @fzfx
    18,5 дм
    попробуйте заменить
    proxy_pass http://bot/webhook;
    на
    proxy_pass http://bot;
    или на
    proxy_pass http://bot/;
    Ответ написан
  • Как восстановить дб Postgres на компьютере из файла .gz?

    fzfx
    @fzfx
    18,5 дм
    Попробуйте распаковать file.gz и выполнить для file.out следующую команду:
    file file.out
    Если напишет, что это текстовый файл, проверьте текстовым редактором, что внутри. Если команды SQL - значит восстанавливать этот дамп следует через утилиту psql.
    Если напишет, что это PostgreSQL custom, то восстанавливать следует через pg_restore.
    Как происходит восстановление через pg_admin и каких форматов дампа, я не знаю.
    Ответ написан
    Комментировать