【Laravel】PostgreSQL과의 접속 + DB에 더미 데이터를 세트 한다

Laravel 설치


  • composer가 설치되어 있는지 확인

  • 터미널
    composer --version
    


  • Laravel 프로젝트 만들기
  • composer create-project --prefer-dist laravel/laravel larapg
    

  • cd 명령으로 만든 프로젝트의 폴더로 이동.
  • cd larapg
    

  • 설정

  • config/app.php
    // 70行目
    'timezone' => 'Asia/Tokyo',
    
    // 109行目
    'faker_locale' => 'ja_JP',
    


    PostgreSQL 설치


  • homebrew가 설치되어 있는지 확인
  • brew -v
    

  • pgsql 설치
  • brew install postgres
    

  • 문자 코드 설정
  • initdb /usr/local/var/postgres -E utf8
    

    PostgreSQL에 연결


  • pgsql 시작
  • postgres -D /usr/local/var/postgres
    
  • 위의 명령을 실행 한 상태에서 다른 터미널을 엽니 다.
  • pgsql에 연결
  • psql postgres
    

  • 사용자 만들기
  • createuser -P admin
    

  • 사용자 목록으로 확인
  • psql -q -c'select * from pg_user' postgres
    

    PostgreSQL로 DB 생성


  • DB [friends] 만들기
  • createdb friends
    

  • DB 목록에서 확인
  • \l
    


  • Postico 설치
  • 시작하고 아래 그림과 같이 설정하고 연결을 클릭합니다.



  • 아래 이미지와 같이 DB가 만들어졌는지 확인합니다.



  • 마이그레이션 설정


    php artisan make:model Models/Friend -m
    
  • 마이그레이션( database/migrations/create_friends_table )을 모델( app/Models/Friend.php )과 함께 만듭니다.



  • create_friends_table.php
    Schema::create('friends', function (Blueprint $table) {
        $table->bigIncrements('id'); // ID
        $table->string('name', 30); // 名前。30文字以内。
        $table->Integer('age')->nullable(); // 年齢。NULLでもOK。
        $table->timestamps();
    });
    
  • 각 테이블의 스키마를 위와 같이 편집합니다.
  • 열 명령 및 한정자 목록


  • PostgreSQL과 Laravel 연결



    .env(숨겨진 파일)
    DB_CONNECTION=pgsql
    DB_HOST=127.0.0.1
    DB_PORT=5432
    DB_DATABASE=friends
    DB_USERNAME=admin
    DB_PASSWORD=
    
  • Laravel의 숨겨진 파일인 .env 파일을 위와 같이 변경.

  • php artisan migration
    
  • 위 명령을 사용하여 마이그레이션을 수행합니다.

  • Postico를 업데이트하여 마이그레이션이 통과되었는지 확인합니다.
  • 아래 이미지와 같이 DB에서 친구 테이블이 생성되었는지 확인하십시오.



  • 마이그레이션을 수정하려면 다음 명령을 실행하고 php artisan migrate 다시 실행하십시오. php artisan migration:rollback

  • 더미 데이터 설정


  • 열에 자동으로 기본값을 설정하는 Factory를 사용합니다.
  • php artisan make:factory FriendFactory
    


    database/factories/FriendFactory.php
    use App\Models\Friend; // Friend のクラスを呼び出す
    ~
    $factory->define(Friend::class, function (Faker $faker) {
        return [
            'name' => $faker->name, // 名前
            'age' => $faker->numberBetween(18,60) // 年齢、18歳〜60歳
        ];
    });
    
  • 그 외에도 ->firstName, ->city, ->date 등이 있습니다.

  • faker 목록

  • php artisan make:seeder FriendsTableSeeder
    


    database/seeds/FriendsTableSeeder.php
    use App\Models\Friend; // Friend のクラスを呼び出す
    ~
    public function run()
    {
        factory(Friend::class, 15)->create(); // friendモデルを使って、15個のランダムデータをDBに保存する。
    }
    



    database/seeds/DatabaseSeeder.php
    public function run()
    {
        $this->call(FriendsTableSeeder::class);
    }
    


    더미 데이터를 DB에 삽입


    composer dump-autoload
    
    php artisan migrate:fresh --seed
    

  • Postico를 확인하고 아래 이미지처럼 보이면 성공입니다.

  • 좋은 웹페이지 즐겨찾기