Скрипт для топ-50 крупнейших загрузок сломан

Иногда я использую скрипт для поиска больших загрузок.

Когда я пытаюсь выполнить запрос

SELECT posts.id AS post_id,
    uploads.original_filename,
    ROUND(uploads.filesize / 1000000.0, 2) AS size_in_mb,
    uploads.extension,
    uploads.created_at,
    uploads.url
FROM post_uploads
JOIN uploads ON uploads.id = post_uploads.upload_id
JOIN posts ON posts.id = post_uploads.post_id
ORDER BY uploads.filesize DESC
LIMIT 50

я получаю сообщение:

PG::UndefinedTable: ERROR:  relation "post_uploads" does not exist
LINE 13: FROM post_uploads
              ^

Для тех, кто найдет эту тему в будущем: это связано с Search attachments by storage name

2 лайка

Ах, да. Таблица post_uploads устарела. По-моему, теперь нужно использовать таблицы uploads и upload_references?

Спасибо за отчет. :+1:


Кажется, вот обновлённая версия, если она вам нужна, @Ivan_Rapekas:

SELECT posts.id AS post_id,
    uploads.original_filename,
    ROUND(uploads.filesize / 1000000.0, 2) AS size_in_mb,
    uploads.extension,
    uploads.created_at,
    uploads.url
FROM upload_references
JOIN uploads ON uploads.id = upload_references.upload_id
JOIN posts ON posts.id = upload_references.target_id AND upload_references.target_type = 'Post'
ORDER BY uploads.filesize DESC
LIMIT 50
3 лайка

Это должно быть исправлено следующим образом: :+1:

2 лайка

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.