Laravel 설치 직후의 설정 변경, 테이블 작성

Laravel 공부하기 시작했기 때문에 메모입니다.
- 참고 사이트: Laravel 5.7 설치

시간대, 로캘 설정



대상 파일: [app\config\app.php]



디폴트에서는 UTC와 en이므로, 일본에서 사용하는 경우는 이하와 같이 합니다.
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/

'timezone' => 'Asia/Tokyo',

/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/

'locale' => 'ja',

데이터베이스 설정



대상 파일: [app\config\database.php]



mysql을 사용하므로 다음을 환경에 맞게 변경합니다.
  • DB_DATABASE
  • DB_USERNAME

  • DB_PASSWORD
    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
    

  • 마이그레이션



    대상 파일: [app.env]



    마이그레이션할 경우 설정합니다.
    DB_CONNECTION=mysql
    DB_HOST=DBサーバーのアドレス
    DB_PORT=3306
    DB_DATABASE=作成したDB
    DB_USERNAME=ユーザ名
    DB_PASSWORD=パスワード
    

    마이그레이션 준비



    대상 파일이 생성되는 위치: [app\database\migrations\xxx.php]



    테이블 구조를 정의하는 파일을 만듭니다.



    artisan을 사용하여 마이그레이션 파일을 작성합니다.
    다음을 만듭니다.
    - URL 관리 테이블 : t_url_list
    - OS를 관리하는 테이블(마스터) m_os_type
    # php artisan make:migration create_url_list_table  --create=t_url_list
    # php artisan make:migration create_os_type_master  --create=m_os_type
    

    실행하면 [app\database\migrations] 아래에 타임스탬프가 접두사로
    추가된 create_url_list_table.php 및 create_os_type_master.php가 생성됩니다.
    (예) 2019_01_17_180850_create_url_list_table.php 등
    두 파일에 테이블 열을 추가합니다.
    - 참고: Laravel 5.7 데이터베이스: 마이그레이션 -> 사용 가능한 컬럼 타입
    - 참고: 영어 버전: Laravel 5.7 데이터베이스: 마이그레이션 Creating Columns

    테이블 구조를 정의합니다.



    t_url_list 테이블


    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateUrlListTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('t_url_list', function (Blueprint $table) {
                $table->bigIncrements('id'); // Auto-incrementing UNSIGNED BIGINT (primary key) equivalent column.
                $table->string('url', 100); //VARCHAR equivalent column with a optional length.
                $table->unsignedInteger('m_os_type_id'); //UNSIGNED INTEGER equivalent column.
                $table->dateTime('created');
                $table->dateTime('modified');
                // インデックス追加
                $table->index('m_os_type_id', 'idx_t_url_list_001'); 
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('t_url_list');
        }
    }
    
    

    m_os_type 마스터


    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateOsTypeMaster extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('m_os_type', function (Blueprint $table) {
                $table->increments('id'); // Auto-incrementing UNSIGNED INTEGER (primary key) equivalent column.
                $table->string('os_type_name', 20)->unique(); // VARCHAR equivalent column with a optional length. ユニークにする
                $table->dateTime('created');
                $table->dateTime('modified');
           });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('m_os_type');
        }
    }
    

    artisan으로 마이그레이션하기


    
    $ php artisan migrate
    Migrating: 2019_01_17_180850_create_url_list_table
    Migrated:  2019_01_17_180850_create_url_list_table
    Migrating: 2019_01_17_180858_create_os_type_master
    Migrated:  2019_01_17_180858_create_os_type_master
    

    위와 같이 표시되면 OK입니다. desc 명령이나 phpMyAdmin 등으로 구조를 확인합니다.



    m_os_type 정의대로 테이블이 작성되었습니다 (다른 하나는 할애)



    길어지므로 데이터의 초기값 등록은 별도로 합니다.

    좋은 웹페이지 즐겨찾기