ruby 在Rails应用程序中禁用db/schema.rb注解

bvjxkvbb  于 2023-03-22  发布在  Ruby
关注(0)|答案(2)|浏览(131)

每次迁移后,我都在db/schema.rb中看到“有用”的注解,我已经厌倦了,我已经知道如何禁用它。

p8ekf7hl

p8ekf7hl1#

要阻止这种情况发生,请在lib/tasks/schema_cleanup.rake中创建以下文件(请注意.rake):

namespace :db do

  def cleanup_schema

    filename = "db/schema.rb"

    schema = File.read(filename)
             .split("\n")
             .select { |l| not l.strip.starts_with? "#" }
             .slice(1..-1)
             .push("")
             .join("\n")

    File.open(filename, 'w') do |file|
      file.write(schema)
    end

  end

  task :migrate do
    cleanup_schema
  end

end

现在,每次运行命令时,注解都将被删除。

yhived7q

yhived7q2#

如何避免在schema.rb中添加注解,您可以添加例如lib/tasks/db.rake

namespace :db do
  at_exit do
    schema_filename = Rails.root.join('db', 'schema.rb')

    break unless File.exist?(schema_filename)

    schema = File.readlines(schema_filename, chomp: true).grep_v(/#/)
    File.open(schema_filename, 'w') { |file| file.puts schema }
  end
end

在这种情况下,每次调用db命名空间中的任何任务时,都会在最后执行这段代码,并删除所有带注解的行
当然,您可以根据自己的具体需要修改这段代码

相关问题