1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[PostgreSQL] Railsアプリを削除するなら、先にデータベースを削除する!

Last updated at Posted at 2021-01-19

##はじめに
学習中にサンプルアプリを作っては消すを繰り返していると、
ふと「フォルダ削除するだけでいいの?」と疑問に感じました。

調べてみると、、
フォルダを削除する前に、**DB(データベース)**を削除しなければいけないらしいです!
以下、2通りの方法をメモしておきます。

  • DB削除 → アプリフォルダ削除
  • アプリフォルダを削除してしまった後のDB削除方法

##環境

  • macOS Catalina
  • Ruby 2.7.2
  • Rails 6.0.3
  • PostgreSQL 13.1

#① DB削除 → アプリフォルダ削除
該当アプリのフォルダ内で

$ rails db:drop

親ディレクトリに移動して

$ rm -rf アプリ名

必ず上記①の手順で削除するのが良さそうです。
ここからは、もしもアプリフォルダを先に削除してしまった場合の方法です。

#② アプリフォルダを削除してしまった後のDB削除方法

$ psql -l     (DB名を一覧表示
#実行結果(sampleアプリを削除したい場合)

                             List of databases
             Name      | Owner | Encoding | Collate | Ctype | Access privileges 
-----------------------+-------+----------+---------+-------+-------------------
 sample_development    | user  | UTF8     | C       | C     | 
 sample_test           | user  | UTF8     | C       | C     | 
 postgres              | user  | UTF8     | C       | C     | 
 template0             | user  | UTF8     | C       | C     | =c/user           +
                       |       |          |         |       | user=CTc/user
 template1             | user  | UTF8     | C       | C     | =c/user           +
                       |       |          |         |       | user=CTc/user
(5 rows)
$ psql postgres      (PostgreSQLにログイン

---
(postgres=#) \du     (ユーザーと権限を確認
(postgres=#) \q      (PostgreSQLからログイン
---

$ dropdb -U ユーザー名 消したいDB名

####※削除してはいけないDB(デフォルト)
postgres
template0
template1

私はこのデフォルトであろうpostgresを削除してしまいました。。(大反省)
学習用のアプリばかりだったので、PostgreSQLをアンインストールしました。
再インストール後に確認すると、上記3つのDBは初めからありました!!

上記デフォルトを削除してしまった後の手順を、自戒の意を込めて記しておきます。
##アンインストール方法

$ ls /usr/local/Cellar/postgresql     (インストール済みPostgreSQLバージョン確認
$ brew info postgresql     (現時点の最新バージョン確認

$ brew uninstall --force postgresql     (全てのバージョンをアンインストール

$ ls -l /usr/local/var/postgres     (設定ファイル、ログ、データ等を表示
$ rm -rf /usr/local/var/postgres     (設定ファイル、ログ、データ等も削除

その後のインストールは、初めてインストールした時と同様に。

##さいごに
学習中はサンプルアプリが増えていく一方でしたが、
私はこの方法で解決できました。
間違っているところがあればご指摘いただけるとありがたいです。

##参考記事
Ruby on Rails 削除関連まとめ
PostgreSQLで強制的にデータベースを削除する
[MacOS] PostgreSQL の全バージョンをアンインストールする方法 ~ Homebrew 編
PostgreSQLドキュメント「dropdb」

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?