herokuのClearDB MySQLと、ローカルのMySQLのバージョン8の『バージョンの差』によって、大きくつまづいたので、もうつまづきたくないという気持ちで備忘録にしました。
果たして、需要があるとは思いませんが一応です。。。笑
それぞれのバージョン
- PHP 7.3.8
- Laravel Framework 5.5.48
- MySQL 8.0.17
- エディター:VScode
- データベースをいじるため:Sequel PRO
前提条件
もうすでにDBの接続や画面遷移などローカルでそこそこ作りあげられていて、いざデプロイと考えている状況を対象にします。
このレベルまでは基本的な参考者一冊をやればできます。「Laravel入門」でいけます。
※『Laravel入門』のレベルアップ版の『Laravel実践開発』という書籍もありますが、このレベルなら特に必要ないので、オススメしません。
なぜ今回MySQLからClearDB MySQLにデプロイするのか
本来、herokuの推進しているデータベースはPostgreSQLです。その理由は様々ですが主に
PostgreSQL であれば、クレジットカードの登録が必要ない
などの理由があげられます。しかし、初心者というかこれからエンジニアになろうという人間にとってはMySQLは
- 一番教材も多い。初心者がPHPを学習すると通る道だと思う
- Sequel PROなどのGUI(データベースを可視化して、いじれれるアプリ)が使えるものが多い
- 少し前にはバージョン8も出たことなど、将来性も一番有力なのでは?
なので、あえてClearDB MySQLを使います。では、具体的に流れをメモっときます。(なぜの部分は暇があれば、記述します。とりあえず、やることリストです。)
herokuにデプロイする
事前準備
ClearDB MySQLでは、バージョンが5.7未満なので、ローカルではできていたものが、後々マイグレーションした時にエラーになってしまうので、最初に直してからherokuを使っていきます。
『UTF-8』に変更する
Laravelの5.4〜は『utf8mb4』です。それを、『UTF-8』にします。ただし、『絵文字』は使えなくなります。
byte数の制約を回避 & HTTPSの設定
ClearDB MySQLでは、5.7未満なので、ユニーク制約を付けたカラムはbyte数の制約で引っかかるので、その設定。
そして、なんか推奨されてるHTTPSの設定。一つの文だけでできるらしいので、とりあえずやっときます。
[crayon-6740582681026100030926/]
用途はよくわからないが、やらなければならないこと
[crayon-6740582681027628610533/]
herokuでアプリを作成&ClearDB MySQLにマイグレーション
主な流れとしては以下になります。
- herokuにアプリを作成
- Gitとつなぐ
- ギットプッシュする
- heroku上にデータベースClearDB MySQLを作成
- 環境変数を合わせていく
- マイグレーションする
- URLにアクセスしてデプロイできているか確認する
エラーが出た場合に
僕自身もエラーが出て出てしょうがなかったので、この経験からエラーの可能性を載せておきます。
ミスが更なるミスを呼ぶので、エラーが出たら最初からherokuにアプリ名を登録するところからやり直した方が良いです。(僕がそれをやらかしました。。。)
事前準備の段階で間違えている
”use Illuminate\Support…”を書き忘れてインポートされていない可能性や、作業ディレクトリの”直下”であるのに、どこかのディレクトリの中に作ってしまったりしていませんか?
ギットと繋げていない(pushを忘れたり)
”git:remote”していなかったり、push先は”heroku”です。普段通りにgit push origin masterなどとしていませんか?
環境変数の登録を間違えている
環境変数をCLEARDB_DATABASE_URLからコピペする人がほとんどだと思います。
その時に、コピペを間違えている可能性がありませんか?無駄な『:』などつけていませんか?
マイグレーションができていない
ClearDB MySQLもれっきとしたデータベースです。
マイグレーションも普段通りです。”外部キーの設定”や、”シーダー" など普段のデータベース作成と何か違いはありませんか?
Sequel Proなどで確認してみましょう。
参考にした記事
参考にした記事の一覧です。この記事たちがなければ僕はエラー解決できませんでした。感謝します!
参考
ちなみに、僕はこの流れをTechAcademyの『PHP/Laravelコース』で学んで確実にできるようになりました。
-
-
【文系大学生/未経験者】テックアカデミー無料体験の感想【質問内容アリ】
悩む人テックアカデミー ってどうだった?無料体験受けた人の感想とか聞きたい。 そんな悩みにお答えします。 今回はこのブログでは初となるプログラミングに関する記 ...
-
-
【就職済み】文系大学生がテックアカデミーを4ヶ月受講した感想
悩む人文系大学生でもTechAcademyでついていけるか不安。受ける前に卒業生からアドバイスが聞きたい。 こんな疑問に答えて行きたいと思います。   ...
TechAcademyは現役のエンジニアが教えてくれるので、独学で詰まっているかもという方にはオススメです。
本日は以上です。バッチャン でした。