为什么rake db:migrate有时会在structure.sql中添加尾随空格?

在我们的一些开发人员机器上,rake db:migrate将尾部空白添加到structure.sql,这真的很烦人,因为每次对数据库进行更改时,我们都必须首先从文件中删除所有尾部空白

有人知道这是怎么回事吗?空白从哪里来?这与PostgreSQL有关,还是其他原因

这里有一个可以提交给版本控制的解决方案:将尾随空格修剪为db:migratehook

lib/tasks/db.rake中:

命名空间:db do
def删除\u结构中的\u空白\u
如果Rails.env.development?
`sed-i'-e的/[:space:]*$/'db/structure.sql`
终止
终止
任务:迁移
删除\u结构中的\u空白\u
终止
终止

上面的代码可能看起来像是在覆盖db:migrate,但它是一个钩子,将在正常的db:migrate任务之后立即运行

发表评论