35 lines
909 B
Ruby
35 lines
909 B
Ruby
require 'rake'
|
|
|
|
desc "This task will perform necessary upgrades to your Instiki installation"
|
|
task :upgrade_instiki => :environment do
|
|
ENV['RAILS_ENV'] ||= 'production'
|
|
puts "Upgrading Instiki in #{ENV['RAILS_ENV']} environment."
|
|
|
|
InstikiUpgrade.migrate_db
|
|
InstikiUpgrade.move_uploaded_files
|
|
end
|
|
|
|
class InstikiUpgrade
|
|
|
|
def self.migrate_db
|
|
ActiveRecord::Base.establish_connection ENV['RAILS_ENV']
|
|
Rake::Task["db:migrate"].invoke
|
|
end
|
|
|
|
def self.move_uploaded_files
|
|
Web.all.each do |web|
|
|
public_path = Rails.root.join("public", web.address)
|
|
if public_path.exist?
|
|
webs_path = Rails.root.join("webs", web.address)
|
|
if webs_path.exist?
|
|
puts "Warning! The directory #{webs_path} already exists. Skipping."
|
|
else
|
|
public_path.rename(webs_path)
|
|
puts "Moved #{public_path} to #{webs_path}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|