【Laravel5/6/7/8 대응】기존의 DB로부터 migration 파일을 작성한다

12246 단어 PHP라라벨
이런 테이블이 있으면
+----------------+--------------+------+-----+---------------------+-------------------------------+
| Field          | Type         | Null | Key | Default             | Extra                         |
+----------------+--------------+------+-----+---------------------+-------------------------------+
| id             | int(7)       | NO   | PRI | NULL                | auto_increment                |
| password       | varchar(255) | NO   |     | NULL                |                               |
| user_name      | varchar(255) | NO   |     | NULL                |                               |
| email          | varchar(255) | NO   |     | NULL                |                               |
| remember_token | varchar(100) | YES  |     | NULL                |                               |
| created_at     | timestamp    | NO   |     | current_timestamp() | on update current_timestamp() |
| updated_at     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                               |
| deleted_at     | timestamp    | YES  |     | NULL                |                               |
+----------------+--------------+------+-----+---------------------+-------------------------------+

이런 migration 파일을 자동으로 생성해 줍니다.
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateTUserInfoTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function(Blueprint $table)
        {
            $table->integer('id', true)->comment('ユーザーID');
            $table->string('password')->comment('パスワード');
            $table->string('user_name')->comment('氏名');
            $table->string('email')->comment('メールアドレス');
            $table->string('remember_token', 100)->nullable()->comment('トークン');
            $table->timestamps(10);
            $table->softDeletes()->comment('削除日時');
        });
    }


    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }

}


검증 환경


  • Windows10
  • Laravel 6.20.30
  • MariaDB 10.5.11

  • 사용할 패키지



    다음을 사용합니다.

    다음 쪽이 도 많습니다만 새로운 버젼의 Laravel6에는 대응하고 있지 않아 사용할 수 없었습니다.
    laravel5.8 이상이라면 위의 것을 사용하도록 issue에 기재되어 있습니다.

    사용방법



    설치



    README에서.
    // パッケージのインストール
    composer require oscarafdev/migrations-generator --dev
    
    // migrationファイルの生成
    php artisan migrate:generate
    
    // migrationファイルを作成してよいかの確認、Yを指定する
    > Do you want to log these migrations in the migrations table? [Y/n] :
    
    // 作成するmigrationのバッチ番号の確認、まだmigrationを行っていない場合0を指定する
    > Number is: 1. We recommend using Batch Number 0 so that it becomes the "first" migration [Default: 0]
    
    

    옵션



    mysql 이외의 접속을 이용하거나, migration 파일을 작성하지 않는 테이블을 지정하거나 할 수 있는 것 같습니다(미검증).
    // mysql(デフォルト)以外の接続を利用
    php artisan migrate:generate -c[=CONNECTION]
    
    // 指定したテーブルのmigrationファイルのみ作成
    php artisan migrate:generate table1,table2,table3,table4,table5
    
    // 指定したテーブル以外のmigrationファイルのみ作成
    php artisan migrate:generate -ignore="table3,table4,table5"
    
    // その他オプションのリストを表示
    php artisan help migrate:generate
    

    좋은 웹페이지 즐겨찾기