0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

<初心者>Laravelアプリの新規作成とMySQLとの連携

Last updated at Posted at 2020-04-28

#目的
Laravelアプリを新規作成する時にやり方をよく忘れるのでメモしました。

##環境
MacOS Catalina
インストール:Laravel 5.7 / composer / mysql 5.7 / Sequel Pro / git / github desktop / github登録

##プロジェクトの新規作成
プロジェクト名、バージョンを指定しつつ、作りたいフォルダに移動した後に下記コマンドを実行します。
サーバーを起動してサイトが表示されるかを確認します。

# 新規作成
$ composer create-project laravel/laravel プロジェクト名 --prefer-dist "5.7.*"

# バージョン確認
$ php artisan -v

# サーバー起動
$ php artisan serve

##MySQLへの接続
下記を行うには、予めmysqlでパスワードの設定等をしておく必要があります。

# MySQLへログイン
$ mysql -u root -p;

# データベース一覧を確認
mysql$ SHOW DATABASES;

# データベースを作成
mysql$ CREATE DATABASE `データベース名`;
mysql$ USE データベース名;
mysql$ SHOW TABLES;
mysql$ exit

GitHubで管理

# 作成したプロジェクトのディレクトリで下記を実行。gitを初期化
git init

上記を実行後、GitHub Desktopアプリで"Add Existing Repository"から追加してmasterへpush

##プロジェクトの設定ファイルを編集
.envファイルの下記箇所を編集

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名 #変更
DB_USERNAME=root #変更
DB_PASSWORD=secret #変更

上記を変更したあとは、キャッシュをクリアする

php artisan config:cache

##マイグレーションを実行

php artisan migrate

下記エラーが出ることがあります。emailのバリデーションを指定しないといけないみたいです。

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `password_resets` add index `password_resets_email_index`(`email`))

一旦、作成したテーブルをsequel proで削除し、下記のようにマイグレーションファイルを変更し、再度マイグレーションを実行すればOKです。

変更するファイル

  • password_resets_table.php
  • users_table.php
# before
table->string('email')->index();

# after
table->string('email', 50)->index();

ここまでで、アプリの新規作成とデータベースを使う準備が完了しました。お疲れ様でした!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?