I try "rake db:rollback STEP=6" or more, but when I run "rake db:migrate" it only shows the last migration file being executed:
== 20150508040222 CreateStructure: migrating ================================== == 20150508040222 CreateStructure: migrated (0.0000s) =========================
When I try to check if the new fields have been created in the previous step using "rails console" and "puts User.new().inspect" it shows those fields are still missing.
How do I roll back so that it will execute those transaction files that I've edited?
[edit]
When I try rolling back using "rake db:migrate VERSION=20150328013052", it fails at the second last migration, because it can't remove the non-existent fields. I think I modified that migration to add those fields after the migration was already executed, so those fields don't exist. What should I do? I tried modifying the timestamp in schema.rb and running migrate but it looks like that's not what keeps track of the current version.
class AddLoginToUsers < ActiveRecord::Migration def change add_column :name, :password, :string end end == 20150508040222 CreateStructure: reverting ================================== == 20150508040222 CreateStructure: reverted (0.0273s) =========================
== 20150506210153 AddLoginToUsers: reverting ================================== -- remove_column(:name, :password, :string) rake aborted! StandardError: An error has occurred, this and all later migrations canceled:
Could not find table 'name'/var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:517:in
table_structure' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:431:inprimary_key' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:538:incopy_table' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:533:inmove_table' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:526:inblock in alter_table' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:211:intransaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:525:inalter_table' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:467:inremove_column' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:662:inblock in method_missing' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:632:inblock in say_with_time' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:632:insay_with_time' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:652:inmethod_missing' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:497:inblock in revert' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:496:ineach' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:496:inrevert' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:604:inexec_migration' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:590:inblock (2 levels) in migrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:589:inblock in migrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:inwith_connection' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:588:inmigrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:765:inmigrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:995:inblock in execute_migration_in_transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:1041:inblock in ddl_transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:inblock in transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/transaction.rb:188:inwithin_new_transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:intransaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/transactions.rb:220:intransaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:1041:inddl_transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:994:inexecute_migration_in_transaction' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:956:inblock in migrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:952:ineach' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:952:inmigrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:827:indown' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/migration.rb:802:inmigrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:137:inmigrate' /var/lib/gems/1.9.1/gems/activerecord-4.2.0/lib/active_record/railties/databases.rake:44:inblock (2 levels) in ' Tasks: TOP => db:migrate (See full trace by running task with --trace)
[edit]
Okay, I see, I just had to blank out the migrations to reverse them, and rewrite them going forward. Problem solved.