LoginSignup
1
0

More than 3 years have passed since last update.

PostgreSQLのデータベースの存在を確認する

Last updated at Posted at 2020-04-07

はじめに

Railsのコマンドから、PostgreSQLにデータベースを作成/削除をして、本当に作成されているか、削除されているか、確認してみる。

環境

Vagrant + Ubuntu 16.04.5 LTS
Rails 5.2.4.2

手順

Railsのプロジェクトファイルを作成する。

$rails new test01 -d postgresql -B
$cd test01

データベースを作成する。

$rails db:create
Created database 'test01_development'
Created database 'test01_test'

データベースの一覧を表示する。

psql -l

確かに、作成されている事が確認できます。一覧は、qキーで閉じる事ができます。

image.png

<参考>
https://db.just4fun.biz/?PostgreSQL/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E4%B8%80%E8%A6%A7%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%E6%96%B9%E6%B3%95

次は、一旦作成したデータベースを削除します。

$ rails db:drop
Dropped database 'test01_development'
Dropped database 'test01_test'

psql -lで確かに、削除された事が確認できます。

再度、データベースを作成して、マイグレーションのバージョンを確認すると、まだ、マイグレーションは1度も実行していないため、バージョンは0で表示される筈です。

$rails db:create
$rails db:version
Current version: 0

適当に、Usersテーブルを作成する。

$rails g model Users name:string
$rails db:migrate

Usersテーブルが確かに作成されている事を確認する。

$psql -q -c 'select * from Users' test01_development
 id | name | created_at | updated_at
----+------+------------+------------
(0 rows)

マイグレーションをロールバックすると、先ほど作成したUserテーブルは削除されるため、テーブルを参照するとテーブルは存在しませんと言われ、エラーになります。

<補足>
psqlのcオプションは、SQLコマンドを投げるためのコマンドです。詳しくは、psql --helpでコマンドの詳細が確認できます。

$rails db:rollback
$psql -q -c 'select * from Users' test01_development
ERROR:  relation "users" does not exist
LINE 1: select * from Users
1
0
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
0