Published on

psql操作備忘録(PodDairy)

Authors

    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;