mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-03 22:41:48 +01:00
Remove transactions from migrations to support sqlite-3. Fixes #451.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@453 a4c988fc-2ded-0310-b66e-134b36920a42
This commit is contained in:
parent
53e8576182
commit
0a28edb2d8
3 changed files with 68 additions and 80 deletions
|
|
@ -3,47 +3,43 @@ class ConvertPreferences < ActiveRecord::Migration
|
|||
class User < ActiveRecord::Base; has_one :preference; serialize :preferences; end
|
||||
|
||||
def self.up
|
||||
ActiveRecord::Base.transaction do
|
||||
@users = User.find(:all)
|
||||
@users.each do |user|
|
||||
user.create_preference
|
||||
user.preference.date_format = user.preferences['date_format']
|
||||
user.preference.week_starts = user.preferences['week_starts']
|
||||
user.preference.show_number_completed = user.preferences['no_completed']
|
||||
user.preference.staleness_starts = user.preferences['staleness_starts']
|
||||
user.preference.show_completed_projects_in_sidebar = user.preferences['show_completed_projects_in_sidebar']
|
||||
user.preference.show_hidden_contexts_in_sidebar = user.preferences['show_hidden_contexts_in_sidebar']
|
||||
user.preference.due_style = user.preferences['due_style']
|
||||
user.preference.admin_email = user.preferences['admin_email']
|
||||
user.preference.refresh = user.preferences['refresh']
|
||||
|
||||
if user.preference.refresh.blank?
|
||||
user.preference.refresh = 0
|
||||
end
|
||||
|
||||
user.preference.save!
|
||||
@users = User.find(:all)
|
||||
@users.each do |user|
|
||||
user.create_preference
|
||||
user.preference.date_format = user.preferences['date_format']
|
||||
user.preference.week_starts = user.preferences['week_starts']
|
||||
user.preference.show_number_completed = user.preferences['no_completed']
|
||||
user.preference.staleness_starts = user.preferences['staleness_starts']
|
||||
user.preference.show_completed_projects_in_sidebar = user.preferences['show_completed_projects_in_sidebar']
|
||||
user.preference.show_hidden_contexts_in_sidebar = user.preferences['show_hidden_contexts_in_sidebar']
|
||||
user.preference.due_style = user.preferences['due_style']
|
||||
user.preference.admin_email = user.preferences['admin_email']
|
||||
user.preference.refresh = user.preferences['refresh']
|
||||
|
||||
if user.preference.refresh.blank?
|
||||
user.preference.refresh = 0
|
||||
end
|
||||
remove_column :users, :preferences
|
||||
|
||||
user.preference.save!
|
||||
end
|
||||
remove_column :users, :preferences
|
||||
end
|
||||
|
||||
def self.down
|
||||
ActiveRecord::Base.transaction do
|
||||
add_column :users, :preferences, :text
|
||||
@users = User.find(:all)
|
||||
@users.each do |user|
|
||||
user.preferences = { "date_format" => "#{user.preference.date_format}",
|
||||
"week_starts" => "#{user.preference.week_starts}",
|
||||
"no_completed" => "#{user.preference.show_number_completed}",
|
||||
"staleness_starts" => "#{user.preference.staleness_starts}",
|
||||
"show_completed_projects_in_sidebar" => "#{user.preference.show_completed_projects_in_sidebar}",
|
||||
"show_hidden_contexts_in_sidebar" => "#{user.preference.show_hidden_contexts_in_sidebar}",
|
||||
"due_style" => "#{user.preference.due_style}",
|
||||
"admin_email" => "#{user.preference.admin_email}",
|
||||
"refresh" => "#{user.preference.refresh}"
|
||||
}
|
||||
user.save
|
||||
end
|
||||
add_column :users, :preferences, :text
|
||||
@users = User.find(:all)
|
||||
@users.each do |user|
|
||||
user.preferences = { "date_format" => "#{user.preference.date_format}",
|
||||
"week_starts" => "#{user.preference.week_starts}",
|
||||
"no_completed" => "#{user.preference.show_number_completed}",
|
||||
"staleness_starts" => "#{user.preference.staleness_starts}",
|
||||
"show_completed_projects_in_sidebar" => "#{user.preference.show_completed_projects_in_sidebar}",
|
||||
"show_hidden_contexts_in_sidebar" => "#{user.preference.show_hidden_contexts_in_sidebar}",
|
||||
"due_style" => "#{user.preference.due_style}",
|
||||
"admin_email" => "#{user.preference.admin_email}",
|
||||
"refresh" => "#{user.preference.refresh}"
|
||||
}
|
||||
user.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,26 +3,22 @@ class ConvertProjectToStateMachine < ActiveRecord::Migration
|
|||
class Project < ActiveRecord::Base; end
|
||||
|
||||
def self.up
|
||||
ActiveRecord::Base.transaction do
|
||||
add_column :projects, :state, :string, :limit => 20, :default => "active", :null => false
|
||||
@projects = Project.find(:all)
|
||||
@projects.each do |project|
|
||||
project.state = project.done? ? 'completed' : 'active'
|
||||
project.save
|
||||
end
|
||||
remove_column :projects, :done
|
||||
add_column :projects, :state, :string, :limit => 20, :default => "active", :null => false
|
||||
@projects = Project.find(:all)
|
||||
@projects.each do |project|
|
||||
project.state = project.done? ? 'completed' : 'active'
|
||||
project.save
|
||||
end
|
||||
remove_column :projects, :done
|
||||
end
|
||||
|
||||
def self.down
|
||||
ActiveRecord::Base.transaction do
|
||||
add_column :projects, :done, :integer, :limit => 4, :default => 0, :null => false
|
||||
@projects = Project.find(:all)
|
||||
@projects.each do |project|
|
||||
project.done = project.state == 'completed'
|
||||
project.save
|
||||
end
|
||||
remove_column :projects, :state
|
||||
add_column :projects, :done, :integer, :limit => 4, :default => 0, :null => false
|
||||
@projects = Project.find(:all)
|
||||
@projects.each do |project|
|
||||
project.done = project.state == 'completed'
|
||||
project.save
|
||||
end
|
||||
remove_column :projects, :state
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,39 +6,35 @@ class ConvertTodoToStateMachine < ActiveRecord::Migration
|
|||
class Project < ActiveRecord::Base; end
|
||||
|
||||
def self.up
|
||||
ActiveRecord::Base.transaction do
|
||||
add_column :todos, :state, :string, :limit => 20, :default => "immediate", :null => false
|
||||
@todos = Todo.find(:all)
|
||||
@todos.each do |todo|
|
||||
if todo.done?
|
||||
todo.state = 'completed'
|
||||
elsif todo.type == 'Deferred'
|
||||
todo.state = 'deferred'
|
||||
elsif !todo.project.nil? && todo.project.state == 'hidden'
|
||||
todo.state = 'project_hidden'
|
||||
else
|
||||
todo.state = 'active'
|
||||
end
|
||||
todo.save
|
||||
add_column :todos, :state, :string, :limit => 20, :default => "immediate", :null => false
|
||||
@todos = Todo.find(:all)
|
||||
@todos.each do |todo|
|
||||
if todo.done?
|
||||
todo.state = 'completed'
|
||||
elsif todo.type == 'Deferred'
|
||||
todo.state = 'deferred'
|
||||
elsif !todo.project.nil? && todo.project.state == 'hidden'
|
||||
todo.state = 'project_hidden'
|
||||
else
|
||||
todo.state = 'active'
|
||||
end
|
||||
rename_column :todos, :completed, :completed_at
|
||||
remove_column :todos, :done
|
||||
remove_column :todos, :type
|
||||
todo.save
|
||||
end
|
||||
rename_column :todos, :completed, :completed_at
|
||||
remove_column :todos, :done
|
||||
remove_column :todos, :type
|
||||
end
|
||||
|
||||
def self.down
|
||||
ActiveRecord::Base.transaction do
|
||||
add_column :todos, :done, :integer, :limit => 4, :default => 0, :null => false
|
||||
add_column :todos, :type, :string, :default => "Immediate", :null => false
|
||||
rename_column :todos, :completed_at, :completed
|
||||
@todos = Todo.find(:all)
|
||||
@todos.each do |todo|
|
||||
todo.done = todo.state == 'completed'
|
||||
todo.type = todo.type == 'deferred' ? 'Deferred' : 'Immediate'
|
||||
todo.save
|
||||
end
|
||||
remove_column :todos, :state
|
||||
add_column :todos, :done, :integer, :limit => 4, :default => 0, :null => false
|
||||
add_column :todos, :type, :string, :default => "Immediate", :null => false
|
||||
rename_column :todos, :completed_at, :completed
|
||||
@todos = Todo.find(:all)
|
||||
@todos.each do |todo|
|
||||
todo.done = todo.state == 'completed'
|
||||
todo.type = todo.type == 'deferred' ? 'Deferred' : 'Immediate'
|
||||
todo.save
|
||||
end
|
||||
remove_column :todos, :state
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue