Defect #5505
closedMigration 0.7.3 -> 0.9.3 fails with BuildProjectsTree: migrating
0%
Description
Hello,
We have an old 0.7.3 redmine version, with postgresql-8.3 backend. We'd like to upgrade it to 0.9.3, but unfortunately, db upgrade crashes :
[code]rake db:migrate RAILS_ENV=production --trace
(in /usr/share/redmine)
- Invoke db:migrate (first_time)
- Invoke environment (first_time)
- Execute environment
- Execute db:migrate
AddCustomFieldsEditable: migrating ======================================
-- add_column(:custom_fields, :editable, :boolean, {:default=>true})
-> 0.0015s
AddCustomFieldsEditable: migrated (0.0017s) =============================
SetCustomFieldsEditable: migrated (0.0029s) ============================= AddProjectsLftAndRgt: migrating =========================================
-- add_column(:projects, :lft, :integer)
-
-> 0.0004s
AddProjectsLftAndRgt: migrated (0.0014s) ================================ BuildProjectsTree: migrating ============================================
rake aborted!
An error has occurred, this and all later migrations canceled:
Validation failed: Homepage is too long (maximum is 255 characters)
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/validations.rb:1021:in `save_without_dirty!'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/dirty.rb:87:in `save_without_transactions!'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:150:in `save!'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:550:in `transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:129:in `transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:150:in `save!'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:158:in `rollback_active_record_state!'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:150:in `save!'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:186:in `rebuild!'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:183:in `call'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:183:in `rebuild!'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:183:in `each'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:183:in `rebuild!'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:193:in `call'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:193:in `rebuild!'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:190:in `each'
/usr/share/redmine/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:190:in `rebuild!'
./db/migrate//105_build_projects_tree.rb:3:in `up_without_benchmarks'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:280:in `send'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:280:in `migrate'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:280:in `migrate'
(DELEGATION):2:in `__send__'
(DELEGATION):2:in `migrate'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:480:in `migrate'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:554:in `call'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:554:in `ddl_transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:550:in `transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/transactions.rb:129:in `transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:554:in `ddl_transaction'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:479:in `migrate'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:466:in `each'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:466:in `migrate'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:394:in `up'
/usr/share/redmine/vendor/rails/activerecord/lib/active_record/migration.rb:377:in `migrate'
/usr/share/redmine/vendor/rails/railties/lib/tasks/databases.rake:111
/usr/lib/ruby/1.8/rake.rb:636:in `call'
/usr/lib/ruby/1.8/rake.rb:636:in `execute'
/usr/lib/ruby/1.8/rake.rb:631:in `each'
/usr/lib/ruby/1.8/rake.rb:631:in `execute'
/usr/lib/ruby/1.8/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/1.8/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/rake.rb:583:in `invoke'
/usr/lib/ruby/1.8/rake.rb:2051:in `invoke_task'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2029:in `each'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:2023:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2001:in `run'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1998:in `run'
/usr/bin/rake:28
[/code]
I tried to do it step by step, using the migration to 0.8.3 (success), 0.8.7 (success)... but as soon as I begin with 0.9.x, it fails.
Here are some informations about the system :
[code]
ruby script/about
About your application's environment
Ruby version 1.8.7 (i486-linux)
RubyGems version 1.2.0
Rails version 2.2.3
Active Record version 2.2.3
Action Pack version 2.2.3
Active Resource version 2.2.3
Action Mailer version 2.2.3
Active Support version 2.2.3
Edge Rails revision unknown
Application root /usr/share/redmine
Environment development
Database adapter postgresql
Database schema version 101
psql --version
psql (PostgreSQL) 8.3.9
contains support for command-line editing
[/code]
If I just show up the "projects" table structure :
[code]
\d projects;
Table "public.projects"
Column | Type | Modifiers
----------------+-----------------------------+-------------------------------------------------------
id | integer | not null default nextval('projects_id_seq'::regclass)
name | character varying(30) | not null default ''::character varying
description | text |
homepage | character varying(255) | default ''::character varying
is_public | boolean | not null default true
parent_id | integer |
projects_count | integer | default 0
created_on | timestamp without time zone |
updated_on | timestamp without time zone |
identifier | character varying(40) |
status | integer | not null default 1
lft | integer |
rgt | integer |
Indexes:
"projects_pkey" PRIMARY KEY, btree (id)
"unique_name" UNIQUE, btree (name)
[/code]
I just saw that the size of "homepage" has changed in 001_setup.rb:
[code]
create_table "projects", :force => true do |t|
t.column "name", :string, :limit => 30, :default => "", :null => false
t.column "description", :string, :default => "", :null => false
t.column "homepage", :string, :limit => 60, :default => ""
t.column "is_public", :boolean, :default => true, :null => false
t.column "parent_id", :integer
t.column "projects_count", :integer, :default => 0
t.column "created_on", :timestamp
t.column "updated_on", :timestamp
end
[/code]
Maybe there's a problem here ?
Thank you for your work and your help.
Best regards,
C.