4
4

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.

チーム開発時に起きえる、migrationファイル・テーブルが起こす大混乱と、その解決方法

Last updated at Posted at 2020-01-29

#はじめに
アプリ作成に必要なのがデータベース-テーブルです。
これの作成や編集には色々な手間がかかりますが、
チーム開発では恐ろしいエラーが出てくることがあります。

今回はその解決方法を一つ提示したいと思います。

#状況
4人チーム開発を行っている。
使っているテーブルはusersproducts
ある時、それまでできていたブランチを全てmergeし、チーム全員にpullしました。
その後rails sでエラーが出ました。
「migrationしなさい」といったエラーです。
そこで、ターミナル上でrake db:migrateをすると、already exists 'products'という様なエラーが出て、rake db:migrateができません。

#原因
人によってマイグレーションファイルの作り方が異なる=テーブルが違うので、全てをマージしたマイグレーションファイル群をまとめてmigrationすると、色々問題が起きるようになるようにしました。(同じマイグレーションファイルが二つあるなど)

#対策
まずは作業用のbranchを作成します。
細かい修正を行うと再びエラーが出ると思い、一度全てのテーブルを削除しました。同時に、チーム全員で協力して不必要なマイグレーションファイルを削除していきます。
その後migrationを行います。

#実行
この作業は一人パソコン上で行っています。各々が勝手に作業するのではなくて、一人が作業しているところを画面を見ながらところどころコメントすることにより間違いが少なくなるからです。
マイグレーションファイルがうまく整備できたのなら、次のコマンドをターミナルで入力してください。

rake db:reset:migrate

上手くいかなかったら、次の順でコマンドを実行してください。

rails db:environment:set

rake db:reset

rake db:migrate

これにより、テーブルの中身は消えていますが、
全員が共通のテーブルを持っていることになります。

#終わりに
チーム内の打ち合わせが足りていないとこのような事態を引き起こしますが、
反対に全員で調べたことを持ち寄り、話し合いながら一つの手順にまとめ、詳しい人にチェックしてもらい、やってみた結果をフィードバックしていけば成長に繋がっていくと思うので、ピンチはむしろチャンスととらえるぐらいな感じで楽しんでもらえたらなと思います。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?