mozyのかきおき

mozyの読書感想文や思考置き場

【時系列まとめ】Monappy Monacoin盗難事件【逐次更新】

分析や憶測も含めてまとめているのはこちら mozy-ok.hatenablog.com

まとめる

全ての真偽は不明。正確な情報に関しては、要調査です🙏

断りのない限り
GMT +02:00 のため注意

Thanks Help SIM-san!!!!

今回の事件の鍵となるアドレスは
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (monappy?)

事件発覚のタイミングはおそらく

September 1, 2018, 6:14 am

MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (100 MONA)
×101 の送信
99.98MONAが
MLkTxD2SVBftYDCJpas7kDCenN3XT144Nq

10000MONAが
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
に送金

だが、それ以前から動きがあるのようなので以下に記載していく。

時系列

主にこのページを参照している。
https://bchain.info/MONA/addr/MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r

August 30, 2018, 3:25 pm(GMT +02:00)

85ce0d7e1aa84a9df81218514019f971fc529d13b30881ce278c243d059dc4b5
Monappy行き100MONA

次のトランザクション

August 31, 2018, 3:27 am(GMT +02:00)

325baf91ec45866fc48c4d4e3034b94c52b844027f4374206555195c8d726d5e
送信元
MMTvd6nmJDMYBG62u8GZ8JL4sU85wkurKo (270.6 mMONA)
送信先
MCphqM6NCSGdbRwMaXfrGJvcb6a8ikauEh (167.1 mMONA)
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (99 mMONA)(犯人)

12時間2分あいてる


August 30, 2018, 3:27 pm(GMT+02:00)

この1分で29回犯人に少額送金されてる

August 31, 2018, 3:31 am(GMT+02:00)

この1分で2件の犯人当て送金のトランザクション
ただしそのうち一番はじめの1件は
送信元が
MAr7THaCBLEF52q3ZdUQeaaDshEatTRVpo (1 mMONA)
M9tWo7RhGbiZbpyTK91oU1Q1vWGkvGVJ7p (1 mMONA)
M9ys8rkqNTCUojZ7T5axnynT8WvX8JY2e9 (1 mMONA)
M9tWo7RhGbiZbpyTK91oU1Q1vWGkvGVJ7p (1 mMONA)
MQg59yCa9ZdP8qSRzwS94QaBrShZ1VHqZB (1 mMONA)
MNYqx85NhrpDtcfdQX2WgxaZELDLYQi91W (1 mMONA)
MWx8zCnfChBywxA6jyRpF7QzDm8t5ApcTY (1 mMONA)
MQg59yCa9ZdP8qSRzwS94QaBrShZ1VHqZB (1 mMONA)
MU5kNPMKh3pmsotsN6G7N4KGgaagXHndk2 (1 mMONA)
MF3miHTtP2jzFN8rYXVcqTS7DDFwWuA8Yy (1 mMONA)
MQCmZL8mnT8dUPSMEpbpGyWzmFWC6ddVVS (1 mMONA)
MFk46MesWguR9SBjT1w5EBEXXhWZHFxRKA (1 mMONA)
MMkTgHFm2diP1HGWVLhBKL5pSpQCG86v5w (67.3 mMONA)
MU11y3rvbm6Yb1HFP8GoFAwv6qEgxjGLfJ (63.6 mMONA)
MD7nhykEVmd9X6bzA4GrM76N9tu9HZ8DqZ (24.9 mMONA)

そして犯人のウォレットと
MJ62csy9HNGf3tkcRoE9TRSy9L4xZfc6iA
というウォレットに
送金されている

1時間46分後

August 31, 2018, 5:17 am(GMT +02:00)

14件の犯人行きトランザクション

3分後

August 31, 2018, 5:20 am(GMT +02:00)

6件の犯人行きトランザクション

2時間56分後

August 31, 2018, 8:16 am(GMT +02:00)

から

August 31, 2018, 8:28 am(GMT +02:00)

の間に
20件の犯人行きトランザクション

5時間16分後

August 31, 2018, 1:44 pm(GMT +02:00)

1件の犯人行きトランザクション
13分後

August 31, 2018, 1:57 pm(GMT +02:00)

11件の犯人行きトランザクション

13時間26分後

September 1, 2018, 3:23 am(GMT +02:00)

から

September 1, 2018, 3:38 am(GMT +02:00) 

の間に
33件の犯人行きトランザクション

1時間23分後

September 1, 2018, 5:01 am(GMT +02:00) 

1件だけ犯人行きトランザクション

September 1, 2018, 6:09 am(GMT +02:00)

送信元犯人で
M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
というウォレットに100MONA送信開始

最後にmonappyに送信した

August 30, 2018, 3:25 pm(GMT +02:00) 

から  38時間44分後(1日と12時間44分後)に
今までのmonappyのアドレスではないものの
また100MONA送金

September 1, 2018, 6:09 am(GMT +02:00)

もう1件
MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA(monappy説)
100MONA送金

September 1, 2018, 6:11 am(GMT +02:00)

M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
100MONA送金

September 1, 2018, 6:14 am(GMT +02:00)

M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
100MONA送金した

そして同時刻

September 1, 2018, 6:14 am

事件発生 MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (100 MONA)
×101 の送信

99.98MONAが
MLkTxD2SVBftYDCJpas7kDCenN3XT144Nq

10000MONAが
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
に送金される

そして
MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA(monappy?)

September 1, 2018, 6:45 am(GMT +02:00)

までに
100MONA×101を送金するトランザクションを8回行う

送金先はすべて10000MONAが
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)

手数料をのぞいた
99.98MONAをそれぞれ別のウォレットに送金している

September 1, 2018, 6:46 am(GMT +02:00)

犯人が
M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
に100MONA送金

September 1, 2018, 6:48 am(GMT +02:00)

MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (moppy?)
(100MONA)×23

そして
先程の8回のトランザクションのうち99.98MONAを送金されたウォレットそれぞれから
99.98MONA
を送金

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
に3000MONA

MAgGr74Sqb3Qv9W6b1xUmq99BKwifpZjgQ
に99.87MONA
が送金される

直後

September 1, 2018, 6:48 am(GMT +02:00)

最後に99.87MONAを送金された
MAgGr74Sqb3Qv9W6b1xUmq99BKwifpZjgQ
から

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)に
99.87MONAが送金される

その後は大した動きもなく
M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人)
の間を100MONAが行ったり来たり

そしてMGsG3Zc95j79nA5iJa5mHbDY5Nf37LsQVn
につながる

monappyとMONAコイン盗難関連に関しての雑記

時系列でまとめているのはこちら mozy-ok.hatenablog.com

目次

2018/09/02 23:11 次からはここに更新した内容と時間を追記していくことにする
2018/09/03 00:22 guriが追跡ツールを完成させたので追記
2018/09/03 03:40 追跡ツールがアドレスをたどって収集するように改良された
2018/09/03 15:37 公式の声明が出たため追記
2018/09/03 15:48 犯人へのアクセス? があったとのことを追記
2018/09/04 16:30 今回の事件に関連すると思われる約3500個のアドレスに対し調査したデータを追加
2018/09/04 16:34 送金量も含めて可視化した画像を追加
2018/09/21 100MONA送信されていた部分は無関係かもしれないということを追記

経緯

Twitterを眺めていたところ、Monacoinの盗難事件を発見した。

いつもMonappyをご利用いただきありがとうございます。

この度、弊サイトに対して外部からの攻撃が発生し、調査の結果ホットウォレット内のMonacoinが盗難されていることが判明いたしました。 そのため、現在サービスを停止して調査を行っております。 詳細な攻撃の内容に関しては現在調査を進めております。 ユーザーの皆様をはじめご関係者の皆様に、多大なるご迷惑をおかけしていますことを深くお詫び申し上げます。

詳細は、公式サイト参照のこと https://monappy.jp/index.html

調査中

サイトの公式声明

2018年9月1日、外部からblock withholding attackについてご報告を受け調査したところ、サーバ上にあるホットウォレットよりMonacoinが盗難されていることが判明いたしました。 全残高の50%以上を保管しているコールドウォレット内のMonacoinについては影響はありませんでした。 従来より対策として必要な承認数を引き上げるなどの処置をしておりましたが、外部からの攻撃により盗難されたものと考えられます。 この件を受けてすぐにサーバを切断し確認作業を行っておりましたが、調査の結果ほぼすべてのサーバ上にあるMonacoinが盗難されていることを確認しました。 現在も攻撃の内容について調査を行っております。 なお、この件につきましてメールアドレスやパスワードなどユーザー情報などの流出は確認されておりません。

時系列で関連しそうな物を並べていく(明記しない限りはJST)

事件以前?

2018/08/31 23:35

関連不明だが

事件発生後

2018/09/01 22:50 頃

一報が出た? (確認中)

2018/09/01 22:57:44.24
789承認済み名無しさん2018/09/01(土) 22:57:44.24ID:c6k8eLp6
モナ死亡w

http://fate.5ch.net/test/read.cgi/cryptocoin/1534497443

2018/09/01 23:16

2018/09/02 00:07

岡三マンが反応

2018/09/02 1:08

曰く、relog ではない模様。

2018/09/02 03:03

公式に、今回の攻撃についてはblock withholding attackなどとは関係しないだろうとの声明がでた
[https://twitter.com/monappy/status/1035951273143455744:embed]

上記声明より引用

2018年9月2日午前1時、検証の結果攻撃に至った原因が高負荷時におけるギフトコード機能の不備であることを確認いたしました。

2018年8月27日から2018年9月1日にかけて、攻撃者と見られる複数のユーザーがギフトコードを大量に発行しました。 同8月29日から9月1日にかけて外部受け取り機能を利用してギフトコードを受け取る際、高い頻度でリクエストを行うことで一つのギフトコードに対し数回の送金が行われてしまい、今回の攻撃に至りました。 ギフトコードの処理に関してはデータベースのトランザクション機能を利用しており、本来同じギフトコードを二重に使用することはできないようになっていました。 しかし、行ロック処理に不備があったため、もしくはcoindの接続がタイムアウトした場合にロールバックが行われることにより、極端なcoindの高負荷時には複数回の送金が行えたものと思われます。 また、この攻撃に際し少額のMonacoinを大量に送付しておくことでcoind送信時の負荷を増大させようとする試みも確認しました。

現時点での調査結果は以上の通りですが、引き続き不確定な部分につきまして原因を究明するために調査を進めて参ります。

原因は、高負荷時におけるギフトコード機能の不備らしい 2018年8月27日から2018年9月1日 で 複数ユーザによる攻撃とな

2018/09/02 04:40

公式の声明が更新
攻撃手法が明らかに。

MonappyからMonacoinを送信する際は、monacoindという別のサーバ上のアプリケーションと通信する仕様になっています。 この通信がタイムアウト等で失敗した場合はサーバダウンなどで送金に失敗しているとみなして、取引をロールバックする仕様となっていました。 また、ギフトコードの処理に関してはデータベースのトランザクション機能等を利用しており、本来同じギフトコードを二重に使用することはできないようになっていました。 しかし、高負荷状態でギフトコードを連続して使用しようとした場合、通信を受け取ったmonacoindの応答に時間がかかり、サイト側ではタイムアウトとなってロールバックされたあとにmonacoind側では送金が行われていました。 この結果、一つのギフトコードから複数回送金されたものと考えられます。 また、この攻撃に際し少額のMonacoinを大量に送付しておくことでcoind送信時の負荷を増大させようとする試みも確認しました。

(逐次更新)

参考に

Monacoinのrich List
Monappyのアドレスがわからん。

https://bchain.info/MONA/rich/

2018/09/02 06:51 更新

MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA かもしれない

憶測の域を出ない部分

https://bchain.info/MONA/addr/MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r このアドレス何者だろう。 このアドレスに対して、 M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t が 100MONAずつを何度も送っている ループもしてる。謎い。

M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t は

First transaction 13 hours ago
Last transaction    46 minutes ago
Total Received 7100 MONA
Balance 0 MONA

つまりは経由しているアドレスと言えそう。
こっちも経由しているアドレスかな

Monacoin address MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA
Hash    c5a090001b8febcd1fe0949c941e37d0d9c37e2c
Number of confirmed transactions    840
First transaction   4 days ago
Last transaction    13 hours ago
Total Received  83100 MONA
Balance 0 MONA

4days 前に用意されて、13hours前に実行された? ミキシングっぽい(?)アドレスリスト

MMjVpbDsfqiKn1WSWLeMp1u6wLSWs48Dr5
MGjBioYdohQN1NUfDwqAUsnaX3H2TtfgC6
MVA37vsGUNc9rAcP6GiwNyRtUxenFpFEGo
MCAy5iykU3vzzF2KNUUYWfzGowoBpLeW9c
MWDZDgmgyr83FLte4NG4d63kT9t73PGrGf

とかいってる間に(2018/09/02 03:05現在) MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r の Balanceが 0MONA になった

https://bchain.info/MONA/addr/MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r

現在はここだ

https://bchain.info/MONA/addr/MGsG3Zc95j79nA5iJa5mHbDY5Nf37LsQVn

MGsG3Zc95j79nA5iJa5mHbDY5Nf37LsQVn

一旦沈静化中 2018/09/02 03:37 現在

2018/09/02 04:04

再び規模の大きなミキシングを行いつつ(?)
マルチシグアドレスに移動しているものもある様子
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx

逐次ブログ更新は間に合わないので、ツイッターで呟きつつ、わかったことをまとめるスタイルにしていく。

この攻撃手法に関して、以前、ある掲示板で話されていたかもしれないとの情報も入ってきた。

2018/09/02 06:10

トランザクションに関するリストをcsvgithubにまとめてアップした。
Thanks Help Guri!!
https://twitter.com/GuriTech

2018/09/02 06:55

ビットコインのマルチシグアドレスは、今の所計3つ

34wQwvsELB1ZMUgJrpxmBfwH5jpZwtoN99
3HWrSeSXt2zTBpnpQ2xWWeXQF5LZxLnBFx
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx
2018/09/02 07:37

やはり、ビットコインのアドレスではなかった。
もなかさん
https://twitter.com/monamour555/ ありがとうございます!

2018/09/02 11:05

以下のマルチシグアドレスが追加された様子。

3GKzYYATKAarkb324dRJBN6Zop3zmrUVc9

これで計4つ

34wQwvsELB1ZMUgJrpxmBfwH5jpZwtoN99
3HWrSeSXt2zTBpnpQ2xWWeXQF5LZxLnBFx
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx
3GKzYYATKAarkb324dRJBN6Zop3zmrUVc9
2018/09/02 16:20

この攻撃手法に関して話されていたのは、アングラ板 の可能性があるとわかった。

2018/09/02 17:38

一旦追跡をし続ける方針と少し変わって、有志で今回の流出の可視化ツールを作成する流れになっている。

とりあえずのJSONが吐き出せるプログラム
Thanks support Guri!! https://github.com/gurisaka/mona_transactions_investigate_tools

2018/09/02 17:43

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16rに関係があったアカウントは全部で403個
下のサイトにアドレス一覧あり
https://pastebin.com/x4zwLzZX

2018/09/02 19:44

取引の流れを @GuriTech のヘルプを受けて可視化した。
ミキシング部分などが把握できる。
vimeo.com

元データはここ。

mona_transactions_investigate_tools/MMQ618_transaction_graph.svg at master · gurisaka/mona_transactions_investigate_tools · GitHub

2018/09/02 19:09

この記事のブクマにあるpaste.binのアドレス先に
犯人とのやりとりかもしれない書き込みがあることがわかった
https://archive.is/7lcd0

書き込み内容は以下の通り。

I gift you WIF
 
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r
TRAwM8TZBQvGRU9tYoEUmknW5jS3JPVXGJ79zUcNxmri9ojChKg1
 
M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
TQMjrb4cEroZun1KpPnFMAYpDRxnW2hLAesA85wACULiyJBg9L28
 
All coins are gone
 
Should I burn the coins?

ちなみにWIF(秘密鍵)はあっている

2018/09/02 23:05

集約してるのバレバレだぜ。
oro2714さん! Help ありがとう
https://gist.github.com/oro2714

f:id:mozy_ok:20180902230514p:plain

2018/09/03 00:22

@GuriTech が追跡ツールを完成させた。
これで調査が容易になるぞ。

GitHub - gurisaka/mona_transactions_investigate_tools

2018/09/03 03:40

追跡ツールがアドレスをたどって収集するように改良された https://twitter.com/guritech/status/1036322513863598081?s=21

2018/09/03 15:37

公式の情報が出たため追記

https://medium.com/@IndieSquare/monappy%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bmonacoin%E3%81%AE%E4%B8%8D%E6%AD%A3%E5%87%BA%E9%87%91%E3%81%AB%E3%81%A4%E3%81%8D%E3%81%BE%E3%81%97%E3%81%A6-bdb1179e2bb9

2018/09/03 15:48

OP_RETURN部分のhexをasciiに変換すると「Give me chocolate. I want to get 1000Mona」になると報告あり。 https://mona.chainsight.info/tx/629321e9697e13d2db3339519a331d7374cb020df18df366f6fd3207f5f8b318

2018/09/04 16:30

今回の事件に関連すると思われる約3500個のアドレスに対しguriさんのツールで調査したデータ

oro2714 (@oro2714) | Twitter さんが作成してくれました。感謝

ResearchResults - Google ドライブ

2018/09/04 16:34

送金量も含めて可視化した画像を追加

https://raw.githubusercontent.com/MozyOk/monappy_chaser/master/M92A9ek5745jKDveURpmKzagwe1pCDkVeM_money_flow.png

事件の流れがわかりつつある

https://bchain.info/MONA/addr/MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA ここら辺をみるに、

2018/08/29 10:35 MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
から MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (moppy?)
に100MONA送信されている履歴がある。

この中の一つが上で紹介した
monappyに100mona謎の入金あり
っていうTweetの証拠となりうるかな

2018/09/21

この100MONA送信されている部分は無関係かもしれない。

2018/09/02 07:13

以下 (GMT +02:00) です
事件発生のタイミングをまとめ

September 1, 2018, 6:14 am
事件発生
MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (100 MONA)
×101 の送信

99.98MONAが
MLkTxD2SVBftYDCJpas7kDCenN3XT144Nq

10000MONAが
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
に送金される

【解決】IntelliJでFlutterアプリ作成時に、Dart SDK is not configure とエラー

起きたこと

IntelliJを使ってflutterでアプリケーションを作ろうとして、プロジェクトを作成したら、 Dart SDK is not configure とのエラーがでた。

flutter doctor では問題なくインストールされている模様。

解決方法

Open Dart Settingを開いて、 Dart SDK Path に /Users/mozy/flutter/bin/cache/dart-sdk のようにパスを設定して、画面下部を以下のようにEnableにチェックを入れたら解決した。 f:id:mozy_ok:20180828010553p:plain

ついでに、
Preferences -> Language and Framework -> Flutter -> Flutter SDK Path からFlutterのパスを確認すると
/Users/mozy/flutter/ となっていて、Versionは

Flutter 0.7.1-pre.28 • channel master • https://github.com/flutter/flutter.git Framework • revision 546449238a (16 hours ago) • 2018-08-26 19:50:02 -0400 Engine • revision af42b6dc95 Tools • Dart 2.1.0-dev.1.0.flutter-ccb16f7282

だった

【解決】BUILD FAILED ** The following build commands failed: ProcessInfoPlistFile build/Build/Products/Debug-iphonesimulator/App.app/Info.plist 【React Native】

経緯

新規にreact-nativeのプロジェクトを作って、react-native run-ios を行ったら以下のようなエラーがでた。

** BUILD FAILED **


The following build commands failed:

    ProcessInfoPlistFile build/Build/Products/Debug-iphonesimulator/App.app/Info.plist App/Info.plist
(1 failure)

Installing build/Build/Products/Debug-iphonesimulator/App.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/App.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

解決策

react-native upgrade をしてyを連打して各所をupgradeしていくと直る。
何が起きたか探ると、ios/ReactNativeCameraApp.xcodeproj/project.pbxproj がupgradeされたことで解決したようだ。

ちなみに、npm install -g react-native-git-upgrade した後に、react-native-git-upgrade でも同様にupgradeされるため解決すると思われる。(こちらの方が新しいupgrade toolらしい)

参考サイト

React Native 0.55.0 CFBundleIdentifier error after fixing metro port · Issue #18687 · facebook/react-native · GitHub

Laravel DB初期設定周りで一瞬考えたこと

以下の例は謎なケースに陥った時のことなので非推奨

そもそも、第二引数は.envが渡ってない時などの初期値なので変更する必要はないハズなんだよなぁ。

初期設定時

database周りで、mysqlを使うとしたら、まずは設定を一旦書き換えて、コミット時には戻すと謎ケースが解決できたりするな。

.env なりで

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=hoge
DB_USERNAME=user
DB_PASSWORD=pass

とか設定しておいて、hoge部分の名前でdatabaseを作っておく。 そして、config/database.php で、

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

forge な部分などを上記のように、.env で決めた値に置き換えて、 php artisan migrate
php artisan db:seed をする。
そうすると、DBが生成されるので終わり。
この場合、コミットの際は、そりゃ当然config/database.php の中身を戻しておく必要があるよね。忘れずに。

【解決】gem install pg でコケる

起きたこと

$ bundle install 時に、

An error occurred while installing pg (1.0.0), and Bundler cannot continue.
Make sure that `gem install pg -v '1.0.0' --source 'https://rubygems.org/'` succeeds before bundling.

てな感じのエラーが出た。

よく見ると、

No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

というエラーが出ていて、libpq-fe.hに関して調べるとpostgresql関連のファイルだった。

解決策

Macだったため、
$ brew install postgresqlをして解決。

【解決】docker-compose down したら mysqlのデータベースの内容が消えたりする

起きたこと

dockerでmysqlのコンテナを立ち上げて、その中にデータを書き込んでいたりした。
その後、docker-compose down したら書き込んでいたデータが消えた。
docker-compose.ymlでは

volumes:
      - ./var/lib/mysql:/usr/local/var/mysql

のようにカレントフォルダ以下の var/lib/mysql を使うように設定していた。

解決策

原因

単に、docker-compose.ymlにMYSQL_DATABASE: "dev" などと記載するのを忘れていただけだった。笑

違った。単に、docker上の/usr/local/var/mysql と接続していなかっただけだ。

volumes:
      - ./var/lib/mysql:/usr/local/var/mysql

/usr/local/var/mysql ではそりゃデータ入らないわ 笑

その他

./var/lib/mysql 以下にデータベース関連のファイルがないので、docker上のmysqlで使えていなかっただけだったようだ。
テーブル名.frm (テーブル定義ファイル)などが存在していれば問題なし。