Laravelでのマイグレーションファイル作成からマイグレーション実行、DBの確認までを行う
今回この記事はLaravelでWEBサービスを開発するにあたって必要になってくる
DB周りのことについてわからないことだらけで解説されているソースもあったのですが
少し理解するのに時間がかかるのでできるだけ簡潔に一連の流れで開発を行えるように
書いていきたいと思います。
Laravelのmigration(マイグレーション)機能とスキーマビルダを使ってデータベースのテーブルやカラムを管理する一連の流れを行います
・ルートディレクトリはlaravelアジェンダ
1.開発環境
2.マイグレーションについて
3.データベース接続確認
4.マイグレーションファイルの生成
5.マイグレーションクラス実装
a.スキーマビルダ
b.カラムタイプ
6.マイグレーション実行
7.ロールバック
DBの接続確認
自分自身こののちに行うマイグレーションを行うときに頻繁に
DBの接続エラーが出てしまいました。
その原因は.envファイルとconfig/database.phpとMysqlこの3つのユーザー名とパスワードが一致していなかったということでした。
大体のマイグレーションのエラーがこの接続エラーらしいので
これを押さえておけばこのコマンドでのエラーは大方防げるのではと思います。
まず.envファイル
laravel/.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel :データベース名
DB_USERNAME=root :ユーザ名
DB_PASSWORD=root :パスワード`
config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'engilio'),:データベース名
'username' => env('DB_USERNAME', 'root'), :ユーザ名
'password' => env('DB_PASSWORD', 'root'), :パスワード
このように両ファイルの設定を確実にMysqlのユーザー名、パスワードに設定します。
意外と忘れがちなのでこれで再確認できればいいかと思います。
マイグレーションファイルの生成
php artisan make:migration create_[ここにテーブル名]_table --create=[テーブル名]
このようにコマンドを打つことでマイグレーションファイルが作成されます。
これによってできたファイルは
laravel/database/migrationsのフォルダに入ります。
マイグレーションクラスの実装
生成されたマイグレーションフォルダのエディターで開いてみます。
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTestTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tests', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
→ここにカラムの修飾を行う
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tests');
}
}
マイグレーション実行
php artisan migrate
このコマンドでマイグレーション実行を行う
実行後、MysqlでDBを確認する
mysql -u root -p root;
mysql> show columns from [テーブル名];
Author And Source
この問題について(Laravelでのマイグレーションファイル作成からマイグレーション実行、DBの確認までを行う), 我々は、より多くの情報をここで見つけました https://qiita.com/Ryosuke27/items/c0a70b634e1cd7dbc338著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .