2011-06-01 19:11:57 +00:00
|
|
|
require 'wordpress'
|
|
|
|
|
|
|
|
namespace :wordpress do
|
|
|
|
desc "Reset the blog relevant tables for a clean import"
|
2011-06-02 12:41:31 +00:00
|
|
|
task :reset_blog do
|
2011-06-01 19:11:57 +00:00
|
|
|
Rake::Task["environment"].invoke
|
|
|
|
|
2011-06-03 16:50:27 +00:00
|
|
|
%w(taggings tags blog_comments blog_categories blog_categories_blog_posts
|
|
|
|
blog_posts).each do |table_name|
|
2011-06-01 19:11:57 +00:00
|
|
|
p "Truncating #{table_name} ..."
|
2011-06-02 12:41:31 +00:00
|
|
|
ActiveRecord::Base.connection.execute "DELETE FROM #{table_name}"
|
2011-06-01 19:11:57 +00:00
|
|
|
end
|
|
|
|
|
2011-06-02 14:22:50 +00:00
|
|
|
end
|
2011-06-02 12:41:31 +00:00
|
|
|
|
|
|
|
desc "import blog data from a Refinery::WordPress XML dump"
|
|
|
|
task :import_blog, :file_name do |task, params|
|
2011-06-01 19:11:57 +00:00
|
|
|
Rake::Task["environment"].invoke
|
2011-06-02 12:41:31 +00:00
|
|
|
dump = Refinery::WordPress::Dump.new(params[:file_name])
|
2011-06-01 19:11:57 +00:00
|
|
|
|
2011-06-02 12:41:31 +00:00
|
|
|
dump.authors.each(&:to_refinery)
|
2011-06-03 09:35:11 +00:00
|
|
|
|
|
|
|
only_published = ENV['ONLY_PUBLISHED'] == 'true' ? true : false
|
|
|
|
dump.posts(only_published).each(&:to_refinery)
|
2011-06-01 19:11:57 +00:00
|
|
|
|
2011-06-03 16:50:27 +00:00
|
|
|
Refinery::WordPress::Post.create_blog_page_if_necessary
|
|
|
|
|
2011-06-02 14:22:50 +00:00
|
|
|
ENV["MODEL"] = 'BlogPost'
|
|
|
|
Rake::Task["friendly_id:redo_slugs"].invoke
|
2011-06-03 09:35:11 +00:00
|
|
|
ENV.delete("MODEL")
|
2011-06-01 19:11:57 +00:00
|
|
|
end
|
|
|
|
|
2011-06-02 14:22:50 +00:00
|
|
|
desc "reset blog tables and then import blog data from a Refinery::WordPress XML dump"
|
|
|
|
task :reset_and_import_blog, :file_name do |task, params|
|
|
|
|
Rake::Task["environment"].invoke
|
|
|
|
Rake::Task["wordpress:reset_blog"].invoke
|
|
|
|
Rake::Task["wordpress:import_blog"].invoke(params[:file_name])
|
2011-06-01 19:11:57 +00:00
|
|
|
end
|
|
|
|
|
2011-06-03 16:50:27 +00:00
|
|
|
|
|
|
|
desc "Reset the cms relevant tables for a clean import"
|
|
|
|
task :reset_pages do
|
|
|
|
Rake::Task["environment"].invoke
|
|
|
|
|
|
|
|
%w(page_part_translations page_translations page_parts pages).each do |table_name|
|
|
|
|
p "Truncating #{table_name} ..."
|
|
|
|
ActiveRecord::Base.connection.execute "DELETE FROM #{table_name}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
desc "import cms data from a Refinery::WordPress XML dump"
|
|
|
|
task :import_pages, :file_name do |task, params|
|
|
|
|
Rake::Task["environment"].invoke
|
|
|
|
dump = Refinery::WordPress::Dump.new(params[:file_name])
|
|
|
|
|
|
|
|
only_published = ENV['ONLY_PUBLISHED'] == 'true' ? true : false
|
|
|
|
dump.pages(only_published).each(&:to_refinery)
|
|
|
|
|
|
|
|
# After all pages are persisted we can now create the parent - child
|
|
|
|
# relationships. This is necessary, as WordPress doesn't dump the pages in
|
|
|
|
# a correct order.
|
|
|
|
dump.pages(only_published).each do |dump_page|
|
|
|
|
page = ::Page.find(dump_page.post_id)
|
|
|
|
page.parent_id = dump_page.parent_id
|
|
|
|
page.save!
|
|
|
|
end
|
|
|
|
|
|
|
|
Refinery::WordPress::Post.create_blog_page_if_necessary
|
|
|
|
|
|
|
|
ENV["MODEL"] = 'Page'
|
|
|
|
Rake::Task["friendly_id:redo_slugs"].invoke
|
|
|
|
ENV.delete("MODEL")
|
|
|
|
end
|
|
|
|
|
|
|
|
desc "reset cms tables and then import cms data from a Refinery::WordPress XML dump"
|
|
|
|
task :reset_and_import_pages, :file_name do |task, params|
|
|
|
|
Rake::Task["environment"].invoke
|
|
|
|
Rake::Task["wordpress:reset_pages"].invoke
|
|
|
|
Rake::Task["wordpress:import_pages"].invoke(params[:file_name])
|
|
|
|
end
|
2011-06-01 19:11:57 +00:00
|
|
|
end
|