Mastodonインスタンスでログイン画面からログインできなくなったユーザーアカウントをPostgreSQLデータベースから削除する方法をぷちスタディ。
root から su – コマンドで postgresユーザーにログインして pqsl -l コマンドでデータベース確認。(アクセス権がないみたいですけどそれはイイんですかね?)
# su - postgres psql (14.4) -bash-4.2$ psql -l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限 ---------------------+----------+------------------+-------------+-------------------+----------------------- mastodon_production | mastodon | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 行)
psql -d ‘データベース名’ でデータベースに入り、SELECT文でIDを確認してDELETE文のWHERE句で id を指定して削除します。
-bash-4.2$ psql -d mastodon_production
mastodon_production=# SELECT id, email FROM users; id | email ----+---------------------------- 1 | test@mail.stuffy.site (1 行) mastodon_production=# DELETE FROM users WHERE id=1; DELETE 1
mastodon_production=# SELECT id, email FROM users; id | email ----+------- (0 行)
削除済みのアカウントと同じメールアドレスで新規再登録できることを確認します。なお、アカウント削除しても同じユーザー名でのアカウントの新規再登録はできないみたいです。(ほかに方法があったら誰か教えて、エロい人!)