diff --git a/db/migrate/20091021024908_modify_text_types.rb b/db/migrate/20091021024908_modify_text_types.rb new file mode 100644 index 00000000..04ede3f4 --- /dev/null +++ b/db/migrate/20091021024908_modify_text_types.rb @@ -0,0 +1,11 @@ +class ModifyTextTypes < ActiveRecord::Migration + def self.up + change_column :revisions, :content, :text, :limit => 16777215 + change_column :pages, :name, :string, :limit => 255 + change_column :webs, :additional_style, :text + end + + def self.down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/db/production.db.sqlite3 b/db/production.db.sqlite3 index 4ac372fe..4018a127 100644 Binary files a/db/production.db.sqlite3 and b/db/production.db.sqlite3 differ diff --git a/lib/tasks/upgrade_instiki.rake b/lib/tasks/upgrade_instiki.rake index ef242c42..35b66954 100644 --- a/lib/tasks/upgrade_instiki.rake +++ b/lib/tasks/upgrade_instiki.rake @@ -1,17 +1,34 @@ -task :upgrade_instiki => :environment do - RAILS_ENV = 'production' unless ENV['RAILS_ENV'] - puts "Upgrading Instiki in #{RAILS_ENV} environment." +require 'rake' - 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}" +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 + +end \ No newline at end of file