📘

本番環境のデータベース(テーブル)を削除する方法

2022/12/17に公開

背景

AWSにデプロイが完了している状態で、モデルの編集を行なった後から、
特定のページに遷移した際「We’re sorry, but 〜」が表示されるようになった。
おそらく、DBに登録されている情報と、編集したモデルの情報が不一致している事でエラーが発生している。
※本来は特定のデータを削除すれば解決できるのだと思いますが、本記事ではテーブル丸ごと削除をしています

💡 lessコマンドを実行した際のエラー
※まさに71行目のcategoryを編集した直後

tail -f less log/production.log
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c] ActionView::Template::Error (undefined method `name' for nil:NilClass):
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     68:                 <ul class="m-0 px-1 border-start">
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     69:                   <li><small class="data m-0"> Post:<%= anniversary.created_at.strftime('%Y/%m/%d') %></small></li>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     70:                   <li><small class="who"> Who:<%= anniversary.who_anniversary %></small></li>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     71:                   <li><small class="category"> Category:<%= anniversary.category.name %></small></li>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     72:                 </ul>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     73:               </div>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]     74:             </div>
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c]
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c] app/views/shared/_contents.html.erb:71
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c] app/views/shared/_contents.html.erb:1
[7b5bfe17-1cfa-4fdf-b139-b9f663e6684c] app/views/users/show.html.erb:9

実施した事

本番環境のMySQL内のデータを削除した

削除手順

  1. EC2に接続して該当フォルダを開く

  2. mysql -u root -p
    ※PWを求められるので適宜入力

  3. MariaDB [(none)]> show databases;

    +------------------------+
    | Database               |
    +------------------------+
    | information_schema     |
    | anniversary_production |
    | mysql                  |
    | performance_schema     |
    +------------------------+
    
    
  4. MariaDB [(none)]> use anniversary_production;

    💡 以下が表示されて、MariaDB [anniversary_production]を参照するようになる

    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    
  5. MariaDB [anniversary_production]> show tables;

    +----------------------------------+
    | Tables_in_anniversary_production |
    +----------------------------------+
    | active_storage_attachments       |
    | active_storage_blobs             |
    | anniversaries                    |
    | ar_internal_metadata             |
    | comments                         |
    | likes                            |
    | lists                            |
    | schema_migrations                |
    | users                            |
    +----------------------------------+
    9 rows in set (0.00 sec)
    
  6. MariaDB [anniversary_production]> select * from anniversaries

  7. MariaDB [anniversary_production]> delete from anniversaries;

参考にした記事

[EC2]本番環境でDBの中身を削除する - Qiita

最後に

備忘録としてアップしましたが、不備などあればご指摘ください。
また駆け出しエンジニアとしてオリジナルアプリを実装していますが、デプロイで何度もエラーを繰り返したので、
これを機に少しでも役に立つ情報があればアウトプットさせていただこうと思った次第です。
本記事が誰かの一助になれば幸いです。

Discussion