##はじめに
PostgreSQLで実装中に「今のテーブルのそれぞれの項目の状態ってどうなってたっけ?」
となったときに、カラムの型の確認の仕方がまとまっていなかったので、まとめる
##環境
macOS Catalina
Ruby 2.5.1
Rails 5.0.7.2
PostgreSQL 12.2
##確認方法
###1. psql -l
で、確認したいテーブルが含まれるデータベースの名前を確認する
PostgreSQLにあるデータベースが一覧表示されるので、確認したいテーブルが含まれるデータベース名をコピーしておく
ternminal
$ psql -l #PostgreSQLのDBを一覧で表示する
##実行結果 (今回は「app-name_development」が対象)
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------------------+--------+----------+---------+-------+-------------------
app-name_development | user | UTF8 | C | C |
app-name_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)
###2. psql -d データベース名
とコマンド入力
コンソール状態のようになる
ternminal
$ psql -d app-name_development #1.でコピーしたデータベース名
psql (12.2)
Type "help" for help.
app-name_development=#
###3. \d テーブル名
とコマンド入力
入力したテーブル名のカラム、インデックス、外部キーが一覧表示される
ternminal
$ psql -d app-name_development
psql (12.2)
Type "help" for help.
app-name_development=# \d users #確認したいテーブル名
Table "public.users"
Column | Type | Collation | Nullable | Default
------------+-----------------------------+-----------+----------+----------------------------------
id | integer | | not null | nextval('woms_id_seq'::regclass)
name | character varying | | not null |
group_id | integer | | |
created_at | timestamp without time zone | | not null |
updated_at | timestamp without time zone | | not null |
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
"index_users_on_group_id" btree (group_id)
Foreign-key constraints:
"fk_rails_b5bbe7a612" FOREIGN KEY (group_id) REFERENCES groups(id)
app-name_development=# \q #\qで終了
##追記(2020/03/21)
これ書いた後に気付いたが、普通にdb/schema.rb
を確認するだけでよかった気もする...