クラゲ丼 Ubuntu 20.04 に上げたら SubwayTooter でエラーが出ています
method=GET path=/api/v1/instance format=html controller=Api::V1::InstancesController action=show status=500 error='ActiveRecord::StatementInvalid: PG::ObjectNotInPrerequisiteState: ERROR: materialized view "instances" has not been populated
HINT: Use the REFRESH MATERIALIZED VIEW command.

MATERIALIZED VIEWとは🤔

ググったらこんな説明がありますね。エラーの文言でググったらもう少し詳細がわかるかも(マテリアライズド ビューの「instances」がうんちゃら)

qiita.com/jiyu58546526/items/8

@popn_ja ありがとうございます。とりあえずpsqlから「refresh materialized view instances;」って入れてみたら「ERROR: relation "instances" does not exist」と怒られたのでnameは何を入れたらいいのかな、mastodonかなあ

けさ弊鯖もちょうど同じ問題に気づいて、リンク先の“Maybe”以降の手順で解決しました。

discourse.joinmastodon.org/t/a

ぽぷんじゃさんの言う通り、psqlコマンドを打つ時にログインするデータベースを指定すればいいかと。

@hanage999 @popn_ja @yi0713 Rails Consoleから実行するやり方として、

bin/rails c

Instance.refresh

という手もあります。

フォロー

@hanage999 @popn_ja @yi0713 クッソ時間かかるクエリーを解決するために、実行結果をマテリアライズ(実体化)させて持っておくことができるビューで、一時テーブルの豪華なやつです。

リフレッシュして生成しておかないと、データが参照できません。

通常は、SidekiqのScheduleで定期実行しています。

データベースのアップグレードなどを行うとマテリアライズした実体がなくなってしまうので、再生成されるまで動かなくなってしまいます。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。