Laravel:DB(Sequel Pro)をつなげてmigrateする方法


【概要】

1.結論

2.どのように記載するか

3.開発環境

補足

1.結論

create databaseしたファイル名と.envとconfig/database.phpでのファイル名等を一致させ、php artisan make:migrationしてから必要な記述をしphp artisan migrateする!


2.どのように記載するか

MysqlやSequel Proの導入は省きます。

❶まずデータベースを作成します

$ mysql -u root -p #パスワードを何も設定してなければEnterで進めます。
mysql> create database ファイル名;

❷.env.exampleとconfig/database.phpでDB(Sequel Pro)をつなげます。

.env
DB_CONNECTION=mysql #mysqlを使用しているのでこのように記載します。
DB_HOST=127.0.0.1 #データーベースサーバーのホストの指定です。
DB_PORT=3306 #初期値がこの値なのでいじらないでOKです。そうでない場合はこの値にしてください。
DB_DATABASE= #create database ファイル名;のファイル名を記載してください。
DB_USERNAME=root #Sequel Proのユーザー名を記載してください。
DB_PASSWORD= #パスワードを設定していなければ空欄でOKです。
config/database.php
'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', ''),
    'username' => env('DB_USERNAME', 'root'),
# .env.example と一致させます。

❸php artisan make:migrationして、php artisan migrateします。

$ php artisan make:migration ファイル名

php artisan make:migration ファイル名を記載するとファイルが生成されるので必要なカラム名や型を設定します。


#省略

    public function up()
    {
        Schema::create('people', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('mail');
            $table->integer('age');
            $table->timestamps();
        });
    }

#省略

ここでphp artisan migrateするとcreate databaseしたDBのファイル名に反映されます。


参考にさせていただいたURL:

❶DBに反映:LaravelでSequel Proを使ったMySQLのデータベース接続(Mac/初心者向き)

3.開発環境

PHP 7.4.10
Laravel 8.9
Apache 2.4.41
Mysql 5.6.47
Sequl Pro 1.1.2

補足

しかし、2.❸でphp artisan migrateしたところ、エラーが生じ、SQLSTATE[HY000] [1049] Unknown database 'laravel'とでました。

結論から言うと、"DB_DATABASE=Laravel"のデフォルトの記述のままでした。その場所はどこかというと、下記で入力した部分でした。

$ vi .env

ここに記載してあるDB_DATABASE= が"Laravel"のままで自分が.env.exampleで設定した名前と違っていたので直したところDBに反映できました。自分が記載した.envファイルは.env.exampleファイルに記載しており"vi .env"に記載していなかったためです。

参考にさせていただいたURL:
❷エラーについて:Laravel MySQL SQLSTATE[HY000] [1049] Unknown database が出た時に確認すること