私のレールの移行でスキーマが空白とテーブルの列の位置で更新されるという不満があります。Railsの移行では、常に空白を挿入するか、スキーマ内の列の順序を変更する
ほとんどの場合、bundle exec rake db:migrate
を実行すると、次のいずれかのシナリオが実行されます。これをメインブランチにマージし、他の開発者がこれを処理すると、レールの移行によってタブと位置の順序が変わります。
私は、スキーマの最後のコミッタであった場合、移行を実行するときにチームの3人の開発者が同じ問題を抱えていることに気付きました。
他の開発者と同じpostgres to v9.2.4
を更新しました。他に何ができるか考えてみましょうか?
例
以下は、何が起こっているかを示すためのgit diffです。スキーマを再注文の
例:スキーマにタブを追加する
create_table "accounts", :force => true do |t|
t.integer "organisation_id"
- t.boolean "active", :default => false
t.text "notes"
+ t.boolean "active", :default => false
end
例:
create_table "comments", :force => true do |t|
- t.integer "commentable_id", :default => 0
- t.string "commentable_type", :default => ""
+ t.integer "commentable_id", :default => 0
+ t.string "commentable_type", :default => ""
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
空白がタブであると思われる理由は何ですか?これらの 'create_table'のバージョンの前後に全体を見るチャンスはありますか? –
@muistooshortありがとう、それらは空白になる可能性があります – Coderama
最初のものは、誰の列もデータベース内で同じ順序ではなく、 'psql'内の' \ d accounts'出力を比較すると、犯人が見つかります。これはいろいろな形で起こる可能性があり、問題ではありません。 2つ目はアラインメントだけです(つまり、 ':default => ...'すべてのオプションを整列させます)。しかし、 'schema.rb'ファイルの前後に全体を見ることなしには分かりません。 –