DB Migration
% rake upgrade_instiki fixes some potential problems in the database column types. Revision content can now be up to 16MB. Under MySQL, the previous limit was 64KB. Page names can now be up to 255 bytes. Under MySQL, the previous limit was 60 bytes. Additional CSS styles can now be up to 64KB. Under MySQL, the previous limit was 255 bytes. Thanks to Andrew Stacey for reporting these.
This commit is contained in:
parent
5df1504255
commit
97a35e280b
3 changed files with 41 additions and 13 deletions
11
db/migrate/20091021024908_modify_text_types.rb
Normal file
11
db/migrate/20091021024908_modify_text_types.rb
Normal file
|
@ -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
|
Binary file not shown.
|
@ -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
|
Loading…
Reference in a new issue