Support #1550
closedMigration from v 0.1.5 to lastest 0.4 fails
Description
We are running an antic version of Foreman (0.1.5 ?).
I'm now trying to my historical data from it into a newly installed 0.4
So far i exported my data [1] , imported it back [2] on an other box
Then i run the with the instruction [4].
On the "RAILS_ENV=production rake db:migrate" step, the rake job failed [4]
I also included the tables [5] diff existing between 0.1.5 and 0.4.0 (from our testing environment)
I will try to reproduce once again to catch the --trace the first time around
Other relevant informations:
ruby -v ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2011.03
[1] mysqldump -u root -p puppet > /var/satellite/puppetdb.sql
[2] mysql -u root -p puppet < /home/florentin.raud/puppet.sql
[3] http://theforeman.org/projects/foreman/wiki/Upgrade_instructions
[4] RAILS_ENV=production rake db:migrate
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
SimplifyParameters: migrating ===========================================
-- remove_index(:parameters, [:host_id, :type])
> 0.0569s remove_index(:parameters, [:hostgroup_id, :type])
-
> 0.0080s remove_index(:parameters, [:domain_id, :type])
-
> 0.0026s rename_column(:parameters, :host_id, :reference_id)
-
> 0.0741s add_index(:parameters, [:reference_id, :type])
-
-> 0.0028s
rake aborted!
An error has occurred, all later migrations canceled:
undefined method `priority=' for #<GroupParameter:0x1c9cc2e8>
Tasks: TOP => db:migrate(See full trace by running task with --trace)
- Yet another run
[foreman@host /opt/foreman]$ RAILS_ENV=production rake db:migrate --trace
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb- Invoke db:migrate (first_time)
- Invoke environment (first_time)
- Execute environment
- Execute db:migrate
SimplifyParameters: migrating ===========================================
-- remove_index(:parameters, [:host_id, :type])
> 0.0004sremove_index(:parameters, [:hostgroup_id, :type])
-
> 0.0002sremove_index(:parameters, [:domain_id, :type])
-
> 0.0002srename_column(:parameters, :host_id, :reference_id)
-
rake aborted!
An error has occurred, all later migrations canceled:
No such column: parameters.host_id
/opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:530:in `rename_column'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `method_missing'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:348:in `method_missing'
./db/migrate//20100525094200_simplify_parameters.rb:7:in `up_without_benchmarks'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `__send__'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:491:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `call'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `ddl_transaction'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:490:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `each'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:401:in `up'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:383:in `migrate'
/opt/foreman/vendor/rails/railties/lib/tasks/databases.rake:112
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/opt/ruby-enterprise-1.8.7/bin/rake:19:in `load'
/opt/ruby-enterprise-1.8.7/bin/rake:19
Tasks: TOP => db:migrate
[5] mysqldump --no-data --tables --create-options -u root --databases puppet
Files
Updated by Ky Zh over 12 years ago
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
- Invoke db:migrate (first_time)
- Invoke environment (first_time)
- Execute environment
- Execute db:migrate
SimplifyParameters: migrating ===========================================
-- remove_index(:parameters, [:host_id, :type])
> 0.0286sremove_index(:parameters, [:hostgroup_id, :type])
-
> 0.0032sremove_index(:parameters, [:domain_id, :type])
-
> 0.0031srename_column(:parameters, :host_id, :reference_id)
-
> 0.0726sadd_index(:parameters, [:reference_id, :type])
-
-> 0.0185s
rake aborted!
An error has occurred, all later migrations canceled:
undefined method `priority=' for #<GroupParameter:0xb203bd0>
/opt/foreman/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:255:in `method_missing'
/opt/foreman/app/models/parameter.rb:16:in `after_initialize'
/opt/foreman/vendor/rails/activerecord/lib/active_record/callbacks.rb:347:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/callbacks.rb:347:in `callback'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:1691:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:1691:in `instantiate_without_polymorphic_checks'
/opt/foreman/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/base.rb:52:in `instantiate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:665:in `find_by_sql'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:665:in `collect!'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:665:in `find_by_sql'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:1582:in `find_every'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:619:in `find'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:639:in `all'
./db/migrate//20100525094200_simplify_parameters.rb:13:in `up_without_benchmarks'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `__send__'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:491:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `call'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `ddl_transaction'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:490:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `each'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:401:in `up'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:383:in `migrate'
/opt/foreman/vendor/rails/railties/lib/tasks/databases.rake:112
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/opt/ruby-enterprise-1.8.7/bin/rake:19:in `load'
/opt/ruby-enterprise-1.8.7/bin/rake:19
Tasks: TOP => db:migrate
Updated by Ohad Levy over 12 years ago
if you rename db/migrate/20110327123639_add_priority_to_parameter.rb to be a lower number then db/migrate/20100525094200_simplify_parameters.rb, does it work?
Updated by Ky Zh over 12 years ago
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
- Invoke db:migrate (first_time)
- Invoke environment (first_time)
- Execute environment
- Execute db:migrate
AddPriorityToParameter: migrating =======================================
-- add_column(:parameters, :priority, :integer)
-> 0.0064s
AddPriorityToParameter: migrated (0.1078s) ==============================
-- remove_index(:parameters, [:host_id, :type])
-
-
-
-
-> 0.0028s
rake aborted!
An error has occurred, all later migrations canceled:
unknown attribute: comment
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2918:in `assign_attributes'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2914:in `each'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2914:in `assign_attributes'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2787:in `attributes='
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2477:in `initialize'
/opt/foreman/vendor/rails/activerecord/lib/active_record/reflection.rb:162:in `new'
/opt/foreman/vendor/rails/activerecord/lib/active_record/reflection.rb:162:in `build_association'
/opt/foreman/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:467:in `create_record'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2182:in `with_scope'
/opt/foreman/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:466:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:466:in `create_record'
/opt/foreman/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:246:in `create'
/opt/foreman/vendor/plugins/acts_as_audited/lib/acts_as_audited.rb:252:in `write_audit'
/opt/foreman/vendor/plugins/acts_as_audited/lib/acts_as_audited.rb:241:in `audit_update'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:178:in `send'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:178:in `evaluate_method'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:166:in `call'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:93:in `run'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in `each'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in `send'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in `run'
/opt/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:276:in `run_callbacks'
/opt/foreman/vendor/rails/activerecord/lib/active_record/callbacks.rb:344:in `callback'
/opt/foreman/vendor/rails/activerecord/lib/active_record/callbacks.rb:281:in `update'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2927:in `create_or_update_without_callbacks'
/opt/foreman/vendor/rails/activerecord/lib/active_record/callbacks.rb:250:in `create_or_update'
/opt/foreman/vendor/rails/activerecord/lib/active_record/base.rb:2577:in `save_without_validation'
/opt/foreman/vendor/rails/activerecord/lib/active_record/validations.rb:1090:in `save_without_dirty'
/opt/foreman/vendor/rails/activerecord/lib/active_record/dirty.rb:79:in `save_without_transactions'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:229:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:229:in `with_transaction_returning_status'
/opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:182:in `transaction'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:228:in `with_transaction_returning_status'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:196:in `save'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
/opt/foreman/vendor/rails/activerecord/lib/active_record/transactions.rb:196:in `save'
./db/migrate//20100525094200_simplify_parameters.rb:23:in `up_without_benchmarks'
./db/migrate//20100525094200_simplify_parameters.rb:13:in `each'
./db/migrate//20100525094200_simplify_parameters.rb:13:in `up_without_benchmarks'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `send'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `__send__'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:491:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `call'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `ddl_transaction'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:490:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `each'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `migrate'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:401:in `up'
/opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:383:in `migrate'
/opt/foreman/vendor/rails/railties/lib/tasks/databases.rake:112
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/opt/ruby-enterprise-1.8.7/bin/rake:19:in `load'
/opt/ruby-enterprise-1.8.7/bin/rake:19
Tasks: TOP => db:migrate
Updated by Ky Zh over 12 years ago
So i did th equivalent of "20100525094200_simplify_parameters.rb" by hand.
Do the migration up to 20100524080302
RAILS_ENV=production rake db:migrate:up VERSION=20100524080302 --trace
Then logged into mysql
myslq -u root -p
Once in mysql, choose the puppet db
use puppet;
I now pretty much translate teh migration into msql
Drop the indexes:
ALTER TABLE parameters DROP INDEX index_parameters_on_host_id_and_type; ALTER TABLE parameters DROP INDEX index_parameters_on_domain_id_and_type; ALTER TABLE parameters DROP INDEX index_parameters_on_hostgroup_id_and_type;
rename the column
alter table parameters change host_id reference_id int(11);
Re-create an index
CREATE INDEX index_parameters_on_reference_id_and_type ON parameters(reference_id,type);
Then print the table content
select * from parameters ;
Ensure your table looks like that:
reference_id = null, hostgroup_id = null, domain_id = null, type = CommonParameter reference_id = null, hostgroup_id = null, domain_id = X, type = DomainParameter reference_id = null, hostgroup_id = X , domain_id = null, type = GroupParameter reference_id = X , hostgroup_id =null , domain_id = null, type = HostParameter
I update reference_id with either the domain or the hostgroup ID
update parameters set reference_id=domain_id where domain_id IS NOT NULL; update parameters set reference_id=hostgroup_id where hostgroup_id IS NOT NULL;
Delete the table, now made redundant
alter table parameters drop hostgroup_id; alter table parameters drop domain_id;
That allow me to go as far as "VERSION=20101019183859" (with 362731, it is taking some time).
If i try to run the next one in line "20101019122857_add_metrics_to_report.rb", it borkes.
== AddMetricsToReport: migrating ============================================= -- add_column(:reports, :metrics, :text) rake aborted! An error has occurred, all later migrations canceled: Mysql::Error: The table '#sql-58c_24' is full: ALTER TABLE `reports` ADD `metrics` text /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log' /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:324:in `execute' /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:489:in `add_column' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `send' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `method_missing' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:348:in `method_missing' ./db/migrate//20101019122857_add_metrics_to_report.rb:3:in `up_without_benchmarks' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `send' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `__send__' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:491:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `call' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `ddl_transaction' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:490:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `each' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:401:in `up' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:383:in `migrate' /opt/foreman/vendor/rails/railties/lib/tasks/databases.rake:112 /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33 /opt/ruby-enterprise-1.8.7/bin/rake:19:in `load' /opt/ruby-enterprise-1.8.7/bin/rake:19 Tasks: TOP => db:migrate
Updated by Ohad Levy over 12 years ago
awesome!
hmm.. it says table is full
I wonder if it might be best to expire old reports first.
then I think the rest of the migrations should work?
Updated by Ky Zh over 12 years ago
Started from scratch, without the table report.
mysqldump -u root -p --ignore-table=puppet.reports puppet > /tmp/export.sql
Imported the data back in.
mysql -u root -p puppet < /tmp/export.sql
Recreated the table:
DROP TABLE IF EXISTS `reports`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; CREATE TABLE `reports` ( `id` int(11) NOT NULL auto_increment, `host_id` int(11) NOT NULL, `log` mediumtext, `reported_at` datetime default NULL, `created_at` datetime default NULL, `updated_at` datetime default NULL, `status` int(11) default NULL, PRIMARY KEY (`id`), KEY `index_reports_on_reported_at_and_host_id` (`reported_at`,`host_id`), KEY `index_reports_on_status` (`status`), KEY `index_reports_on_host_id` (`host_id`), KEY `index_reports_on_reported_at` (`reported_at`) ) ENGINE=InnoDB AUTO_INCREMENT=410903 DEFAULT CHARSET=latin1; SET character_set_client = @saved_cs_client;
I then carry on with what i did in http://theforeman.org/issues/1550#note-4 again.
That help me to go a bit forward
RAILS_ENV=production rake db:migrate:up VERSION=20110216101848 --trace
But still, it failed at 20110301154453_add_managed_to_hosts.rb
** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate == AddManagedToHosts: migrating ============================================== -- add_column(:hosts, :managed, :boolean) rake aborted! An error has occurred, all later migrations canceled: Mysql::Error: Duplicate column name 'managed': ALTER TABLE `hosts` ADD `managed` tinyint(1) /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log' /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:324:in `execute' /opt/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:489:in `add_column' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `send' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:352:in `method_missing' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:328:in `say_with_time' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:348:in `method_missing' ./db/migrate//20110301154453_add_managed_to_hosts.rb:3:in `up_without_benchmarks' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `send' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/benchmark.rb:293:in `measure' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:282:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `__send__' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:365:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:491:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `call' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:567:in `ddl_transaction' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:490:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `each' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:477:in `migrate' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:401:in `up' /opt/foreman/vendor/rails/activerecord/lib/active_record/migration.rb:383:in `migrate' /opt/foreman/vendor/rails/railties/lib/tasks/databases.rake:112 /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain' /opt/ruby-enterprise-1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33 /opt/ruby-enterprise-1.8.7/bin/rake:19:in `load' /opt/ruby-enterprise-1.8.7/bin/rake:19 Tasks: TOP => db:migrate
I understand that it complain about managed that already exists.
By looking inside the table , its always set to NULL.
Now i'm sure what i should update "managed" with.
I assume "true", unless one the bellow column end up NULL or not empty
host.update_attribute :managed, !!host.operatingsystem_id and !!host.architecture_id and (!!host.ptable_id or not host.disk.empty?)
So one should see the managed row to update with
select id from hosts where (architecture_id is NULL and operatingsystem_id is NULL and (ptable_id is NULL or disk is NULL));
Would the above assumption correct ?
Updated by David M. over 12 years ago
I also have seen this kind of issue on a test-install yesterday.
Testsetup:
puppet+puppetmaster and foreman are on the same host (RHEL6.2 x86_64).
As soon as puppet creates the required tables in mysql, the migration script fails.
If the database is empty, migration works.
It got stuck on the same script as mention above.
Updated by Ky Zh over 12 years ago
I realise that "managed" was the button on the corner right when you edit a host.
As it will start with a non managed state (NULL in the database), I don't actually need to worry about it.
To get it to work, remove the migration
rm db/migrate/20110301154453_add_managed_to_hosts.rb
It then finnished nicely.