2

db:structure:dumpカスタマイズしてタスクを実行しようとしてdb:structure:loadいますが、次のエラーが発生します。

$ rake db:structure:dump
rake aborted!
uninitialized constant Tasks::DatabaseTasks

私が使用しているコードは、https://github.com/rails/rails/blob/master/activerecord/lib/active_record/railties/databases.rakeからコピーしたもので、数行が削除されています。

# lib/tasks/db.rake
require 'active_record'

Rake::Task['db:structure:dump'].clear

namespace :db do
  namespace :structure do
    desc 'Dump the database structure to db/structure.sql. Specify another file with DB_STRUCTURE=db/my_structure.sql'
    task :dump => [:environment, :load_config] do
      abcs = ActiveRecord::Base.configurations
      filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql")
      case abcs[Rails.env]['adapter']
      when /mysql/, /postgresql/, /sqlite/
        ActiveRecord::Tasks::DatabaseTasks.structure_dump(abcs[Rails.env], filename)
      else
        raise "Task not supported by '#{abcs[Rails.env]["adapter"]}'"
      end

      db_namespace['structure:dump'].reenable
    end
  end
end

他に何を要求または含める必要がありますか?

4

0 に答える 0