一部の開発者用マシンでは、データベースに変更が加えられるたびに最初にすべての末尾の空白をファイルから削除する必要があるため、末尾の空白が追加されて非常に面倒ですrake db:migrate
。structure.sql
誰がそれで何が起こっているのか知っていますか? 空白はどこから来ますか?それはPostgreSQLと関係がありますか、それとも何か他のものですか?
一部の開発者用マシンでは、データベースに変更が加えられるたびに最初にすべての末尾の空白をファイルから削除する必要があるため、末尾の空白が追加されて非常に面倒ですrake db:migrate
。structure.sql
誰がそれで何が起こっているのか知っていますか? 空白はどこから来ますか?それはPostgreSQLと関係がありますか、それとも何か他のものですか?
バージョン管理にコミットできる解決策は次のとおりです。末尾の空白をdb:migrate
フックとしてトリムします。
でlib/tasks/db.rake
:
namespace :db do
def remove_whitespace_in_structure
if Rails.env.development?
`sed -i '' -e's/[[:space:]]*$//' db/structure.sql`
end
end
task :migrate do
remove_whitespace_in_structure
end
end
上記のコードは を上書きしているように見えるかもしれませんが、通常のタスクdb:migrate
の直後に実行されるフックです。db:migrate
同じ問題を抱えているので、スペースの違いが省略されるように、実際に効果のある変更を a に追加しますgit add -i db/structure.sql
。git checkout db/structure.sql
私たちのチームで検討している代替案は、データベースを追跡するために別の gem を使用することです。