Help us understand the problem. What is going on with this article?

Laravelで既存のDBからmigrationsファイルを作成する「migrations-generator」

経緯

  • 運用中のサービスをDBはそのままでAPI用のPHPフレームワークをLaravelに差し替える事になった。
  • テーブルの数が100を超えていてとても手書きでmigrationを書く気が無い
  • 色々なmigrationsに関する記事を確認しても新規サービスを想定している
  • 困った。(^_^;)

Laravel用パッケージ「migrations-generator」

  • migrations-generator
  • Laravel5、Laravel4に対応。(4の方は自分は未確認)
  • 既存のテーブルのマイグレーションファイルを作成してくれる。
  • 使い方簡単

環境とか

確認した自分の環境
* Mac OSX Yosemite
* vagrant CentOS 7.2
* DB pgsql 9.3
* Laravel 5.2

使い方

githubのreadmeの通り。一応ここでも手順を書く。

インストール

composer require --dev --no-update "xethron/migrations-generator:dev-l5"
composer require --dev --no-update "way/generators:dev-feature/laravel-five-stable"
composer config repositories.repo-name git "git@github.com:jamisonvalenta/Laravel-4-Generators.git"
composer update

composer updateの実行時に何やらTokenを入力しろ的な感じになった。
ctl+cで処理を停止。

githubの認証登録

調べてみるとgithubの認証が無い模様。
composerでGitHub apiのアクセス制限対処法を参考に以下を実行

curl -u '[user name]' -d '{"scopes":["repo"],"note":"Help example"}' https://api.github.com/authorizations

[user name]は自分のgithubのユーザ名を入れる。続けてパスワードを入力する。
認証に成功するとtokenを含むjsonが返ってくる

コンポーザーにgithubのトークンを登録する為に以下を実行

composer config -g github-oauth.github.com [get token]

[get token]はjsonの中身のtokenを入れる。

改めてインストール

composer update

を実行。今度はインストールされる。

Laravelの設定

app.phpのproviders配列に以下を追加

config/app.php
Way\Generators\GeneratorsServiceProvider::class,
Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,

マイグレーションファイルの作成

用意が出来たのでマイグレーションファイルの作成をする。ここではDBの接続の設定が完了しているものとします。

単純に全てのテーブルのマイグレーションファイルを作成

php artisan migrate:generate

無視するテーブルを指定してマイグレーションファイルを作成

自分はuserspassword_resetsテーブルをマイグレーションから作成してしまった。この2つを無視する場合は以下をignoreオプションを付けて実行

php artisan migrate:generate --ignore="users,password_resets"
 Do you want to log these migrations in the migrations table? [Y/n] :
 > Y

 Next Batch Number is: 2. We recommend using Batch Number 0 so that it becomes the "first" migration [Default: 0] :
 > 0

処理を待つとマイグレーションファイルの出来上がりです。

補足

「connection」オプションもある模様。自分は試して無いです。

以上です。なにか間違いや意見などあればコメントか編集リクエストお願いします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした