Published on

psql操作備忘録(PodDairy)

Authors
  • Name
    Twitter

psqlでよく使うコマンドの備忘録

poddiary_db

dbにアクセス

\c poddiary_db

テーブルリストの表示

\dt
                        リレーション一覧
 スキーマ |           名前            |  タイプ  |    所有者
----------+---------------------------+----------+---------------
 public   | api_diary                 | テーブル | poddiary_user
 public   | api_diarycomment          | テーブル | poddiary_user
 public   | api_episode               | テーブル | poddiary_user
 public   | api_helprequest           | テーブル | poddiary_user
 public   | api_podcast               | テーブル | poddiary_user
 public   | api_profile               | テーブル | poddiary_user
 public   | api_user                  | テーブル | poddiary_user
 public   | api_user_groups           | テーブル | poddiary_user
 public   | api_user_user_permissions | テーブル | poddiary_user
 public   | auth_group                | テーブル | poddiary_user
 public   | auth_group_permissions    | テーブル | poddiary_user
 public   | auth_permission           | テーブル | poddiary_user
 public   | django_admin_log          | テーブル | poddiary_user
 public   | django_content_type       | テーブル | poddiary_user
 public   | django_migrations         | テーブル | poddiary_user
 public   | django_session            | テーブル | poddiary_user

テーブルの構造確認

\d api_podcast

テーブルの内容表示

SELECT * FROM table_name;

日記確認

SELECT * FROM api_diary;

ユーザー確認

SELECT * FROM api_user;

データ削除

DELETE FROM api_diary WHERE id = 7;

マイグレーション(DRF)

# マイグレーション実行
python manage.py makemigrations
python manage.py migrate

# スーパーユーザーを作成(初回)
python manage.py createsuperuser

ユーザー名:test パスワード:test


(補足)最初から構築する場合の手順もメモ

ローカルでデータベースの用意

postgreSQLをローカルで扱う環境を構築、及びPythonがPostgreSQLと通信するためのパッケージをインストール。

新しいデータベースを作成

CREATE DATABASE poddiary_db;

新しいユーザーを作成し、パスワードを設定

CREATE USER poddiary_user WITH PASSWORD 'yourpassword';

データベースに対して全ての権限をユーザーに付与

GRANT ALL PRIVILEGES ON DATABASE poddiary_db TO poddiary_user;

poddiary_userがpublicスキーマに対して必要な権限を持たせる 作成したデータベースに接続します。

\c poddiary_db
``
`
権限の確認と付与
poddiary_userに必要な権限を付与します。

```sql
GRANT ALL PRIVILEGES ON DATABASE poddiary_db TO poddiary_user;
GRANT ALL ON SCHEMA public TO poddiary_user;
ALTER USER poddiary_user SET search_path TO public;