27

一部の開発者用マシンでは、データベースに変更が加えられるたびに最初にすべての末尾の空白をファイルから削除する必要があるため、末尾の空白が追加されて非常に面倒ですrake db:migratestructure.sql

誰がそれで何が起こっているのか知っていますか? 空白はどこから来ますか?それはPostgreSQLと関係がありますか、それとも何か他のものですか?

4

6 に答える 6

10

バージョン管理にコミットできる解決策は次のとおりです。末尾の空白を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

于 2015-07-06T17:26:32.970 に答える
1

同じ問題を抱えているので、スペースの違いが省略されるように、実際に効果のある変更を a に追加しますgit add -i db/structure.sqlgit checkout db/structure.sql

私たちのチームで検討している代替案は、データベースを追跡するために別の gem を使用することです。

于 2014-06-25T12:57:19.607 に答える