namespace :cassie do
namespace :schema do desc "Create an initial schema version based on the current schema" task :import => :init do include Cassie::Tasks::IO begin version = Cassie::Schema.next_version keyspace = Cassie.configuration[:keyspace] puts "-- Importing Schema from Cassandra" version.description = "import #{keyspace}" dumper = Cassie::Schema::StructureDumper.new writer = Cassie::Schema::VersionWriter.new(version) contents = dumper.keyspace_structure.gsub(/\n\n/, "") contents = contents.gsub(/(\A\n|\n\z)/, "") writer.up_code = "cql = <<-EOS\n#{contents}\nEOS\n" writer.up_code += " execute(cql)" writer.down_code = "execute('DROP KEYSPACE #{Cassie.configuration[:keyspace]};')" puts " - Creating initial version" rel_path = writer.filename.sub(Dir.pwd, "") writer.write puts " > #{green("created")} #{rel_path}" Cassie::Schema.record_version(version) puts " > #{white('recorded')} version #{version}" puts " - done" puts "-- done" rescue => e output_error(e) abort end end end
end
Rake::Task.enhance do
Rake::Task["cassie:schema:dump"].invoke
end