Gemfileにrspec系のgemを加えます。僕はdocker使っていたのでこんなかんじです。installそしてrspecで必要なファイルを用意する必要があるのでrailsのコマンドを打ちます。rspec:installこれで必要なものが完成。テスト書いてrspecを実行。existとエラーになりました。この後は何回やってもこのエラーになってしまいます。rspec:installを実行した時にrails_helper.rbというファイルが作られます。line.ActiveRecord::Migration.maintain_test_schema!というのがあります。結論、この設定のせいでDBが吹っ飛びました。これrails4.1から設定されているものらしいです。github.comコードを追うgithubでいうとここですね。Recordがテスト用データベーススキーマをdb/schema.rb(またはdb/structure.sql)に基いて最新の状態にするかどうかを指定するものらしいです。github.comでこのif文を見てみます。!Base.connection.migration_context.any_migrations?今回はこれですね。僕はphpを触ったことがないのでなんとも言えないのですが、今回はphpでDBがもともと作成されていました。僕が新しく作ったrailsのアプリケーションにはmigrationのファイルが一つもないわけです。Base.establish_connection(current_config)このロジックが流れ、新しいデータベースを作りにいってしまいました。結果、何もない綺麗さっぱりなDBが出来てしまった→DBが吹っ飛んだということになっていたらしいです。コメントアウトでも書いてあるのですが、自然と作られるものってそこまで読まないので気をつけたいものです。いうか、やっぱり何かあったときのためにdumpしようねって話ですね。~/Desktop/hoge.sqlOUTPUT_FILE_NAME:これはtest.sql的なので空ファイルを自分で作っておくということです。踏み台使わないと行けない場合は、トンネル掘ってから実行すれば問題ないです。dockerでdb作るときにvolume忘れずにセットしする。docker-compose.ymlの中で忘れずに。./db/mysql/volumes:/var/lib/mysqldocker起動してからdumpしたファイルをコピーし、docker内に入ってrestoreする。/var/lib/mysql終わり。existと言われた。先週くらいからようやくdockerに入門しました!(遅い・・)本とか自分のPC上では軽く触ったことあったのですが、業務でがっつりdockerで環境構築をしたことはなかったです。「どうせならdockerでやろう」と思って作業してみたもののちょびっと詰まったところがあったのでこれから入門する人の参考になればと思いログとして残しておきます!構成rails5.2、mysql5.7で作ろうと思っていました。dockerの公式のチュートリアルでもありますが、結構docker上にアプリケーションとDBの両方置いちゃうケースがあると思います。僕も最初これで環境作ろうと思っていました。今回の環境構築では新規DBを作成ではなく既存のDBを使いたい!!既存のDBをダンプしてそれを新規DBでリストアするか〜とも思いましたが、データ量かなり大きそうで断念。いうことで結局この構成にしました。構成だったので本当にできるのか不安だったのでまずはローカルからリモートのDBに繋げられるかを確認。mysqlと打っても何も出ないので、パスを通すことにしました。僕は.bash_profileにいつも書くのでそこに追記します。mysql/usr/bin/mysql準備できた。userおっふ、、、弾かれましたな。インフラチームに聞いたところローカルからは直接繋げられないよ、とのことでした。踏み台を利用して繋ぐ方針に変更。トンネル掘って繋げれるようにしました。踏み台サーバーのホスト名でログインできていたので以下になりました。sshとやると、フォワーディングしているプロセスが出てくるのでkillすればokです!ここまできてようやく今回の構成が決まりました汗。dockerからローカル経由してフォワーディング先のリモートDBに繋げそうですね。コードあとはdockerからローカルのところを実装すればうまくいきそうです!なのでコードを書いていきましょう。チュートリアルと同じなので迷うこともないかなと思います。作業するディレクトリを作り、その上でDockerfileとdocker-compose.ymlとGemfile、Gemfile.lockを作ります。Gemfile.lockそして各々コードを記述していきます。'5.2.0'Gemfile.lockは空。--database=mysql新しいファイルができたらconfig/database.ymlを修正します。3307にしています。--buildlocalhost:3000にアクセスするとお馴染みの画面が表示されるはずです。Recordって使えるmysqlのバージョンがあったんですね笑。いうところもしっかりみておきたいですね!github.com終わり。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。