🆙
Homestead をアップデートしたい
アップデートの方法がどこにもないので、 box の最新版を追加し、 git のソースも最新化した (方法はこちら)。
ただし、この方法だとデータベースの中身が引き継がれない。
もし最新化する前であれば、普通に vagrant ssh
で mysqldump
するだけ。
ダンプの仕方を知りたい人は飛ばしてこちら。
自分みたいにうっかり更新した後で、旧 Homestead のデータを取り出したいとなった人は次へ。
データベース内容の引き継ぎ
- VirtualBox から旧 Homestead を直接起動
- GUI でログインする(login:
vagrant
, Password:vagrant
) - mysqldump する
- ホストのコンソールから scp で取り出す
- 旧 Homestead シャットダウンする
- 新 Homestead を
vagrant up
で起動する - 先程のダンプファイルをゲストと共有しているフォルダに入れる
-
vagrant ssh
でゲストに入り、共有フォルダに移動する - マイグレーションを実行する
- ダンプを mysql に流し込む
ダンプの仕方
データだけとる
大抵の人はマイグレーションを利用しているので、ダンプはデータだけ取れれば良いはず。
database
と bk_databas.sql
はそれぞれ自分に合ったものに変更する。
mysqldump -t `database_name` --ignore-table=migrations > bk_databas.sql
スキーマも一緒に
マイグレーションを利用していない場合は以下になる。
-t
があるかどうかの違い。
mysqldump `database_name` > bk_databas.sql
最新化
- Homestead.yaml のバックアップ (例:
cp Homestead.yaml Homestead.yaml.bk
) vagrant box update
git fetch
git checkout release
bash init.sh
- いくつか聞かれるが全部
y
- Homestead.yaml の差分を確認し、プロジェクトに必要なところを戻す
- デフォルトのPHPバージョンが変更になっている場合は、以前のやつに設定する (例:
php72
)
ライブラリとかは何もしなくてもそのまま引き継がれているはずなので、 composer とかは基本的にやらなくて良いはず。
自分のプロジェクトの PHP バージョンが分かっているのであれば、 Homestead.yaml
の sites
ディレクティブで該当のプロジェクトに php: "7.2"
と記載するのが良いと思う。
Discussion