質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1667閲覧

ruby on railsにおけるmigrationファイルの命名規則

YMasu

総合スコア9

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/13 01:55

railsでDBの定義や変更を行うためにmigrationファイルを作成すると思いますが、プロジェクトにおいてファイル命名規則はどのように管理するのが望ましいでしょうか?

以下の3つのポイントでご教授ください。
0. 同一名を付けたい場合
0. 複数チームで開発を行う場合
0. バグフィックス時などの場合に特別な命名を行うか

ベストプラクティスでなくても過去の参加プロジェクトでこうしていたという経験でも構いません。
今までrailsのプロジェクトへの参加経験がないので教えていただければ助かります。

######3つのポイントの経緯
0. 同一名を付けたい場合
まず、同一テーブルの同一カラムに対する変更で同じ名前が使えなくて困りました。単純にインデックスを付けるなどの解決策は思い浮かびますが少しかっこ悪い気もします。
※migration自体クラスであることによってこの制約があることは理解しています。
①userテーブル作成
②nameカラムのサイズ制限をつける(変更1回目)
migrationファイル名:change_name_to_user
③nameカラムにNULL制約をつける(変更2回目)
migrationファイル名:change_name_to_user  ※重複発生

  1. 複数チームで開発を行う場合

同一名を付けられない制約を受けた上で複数チームで開発する場合どうしているのだろうと疑問に思います。コンフリクトを回避するためmigrationファイルにチーム名をプレフィックスやサフィックスにつけるとかしているのかなーとかモヤモヤしました。
例)
チームAは"_a"をつける
チームBは"_b"をつける
0. バグフィックス時などの場合に特別な命名を行うか
単純に、バグフィックスの場合どの様にしているのだろうと疑問が湧きました。
migrationファイル名に意味を持たせるのであれば管理番号なり管理コードをつけるのはありそうな運用方法だと思うのですがいかがでしょうか。

<環境>
rails 6.0.2.2
mysql 5.7.29

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

  1. 同一名を付けたい場合

何を変更するのか、を明記すればよいでしょう。changeでは何を変えたかがわからないから、中をみるということがでてくる
size_limit_name_to_user
non_null_name_to_user

  1. 複数チームで開発を行う場合

これも、何を変えるのかというのがあれば重複はないでしょう。

  1. バグフィックス時などの場合に特別な命名を行うか

つけません。Git commit メッセージやbranchはそうしますが。
機能追加、仕様変更、などの場合に特別な命名しますか?

投稿2020/05/13 02:25

winterboum

総合スコア23401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YMasu

2020/05/13 02:49

回答ありがとうございます。 1について少し掘り下げさせてください。 開発初期段階で同一カラムに対する仕様変更が頻発するケースでは以下の様な命名としても不自然さはないでしょうか? 感覚でも構いません。 同一カラムに対して複数回サイズ変更が行われるケース(60->120->128) size_limit_60_name_to_user size_limit_120_name_to_user size_limit_128_name_to_user ※設計甘すぎない?というのは置いておいて。。 3について確かに、ソースのバージョン管理に残っていれば十分ですね。納得です。
winterboum

2020/05/13 02:55

良いんではないでしょうか
YMasu

2020/05/13 02:59

ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問