Spec migrations?

Dear list,

I am in the process of writing on an app with is already running. I
need to create a couple of structural database changes for which I use
migrations. However I want to be absolutely sure I do not destroy any
existing data. So RSpec is the way to go! Or so I thought.

  1. dropped the test database.
  2. create the database.
  3. migrate to the version just before the critical migration
  4. insert some stuff in the database
  5. run the critical migration
  6. see if the result is as I expected

But I receive the following error:
Mysql::Error: #HY000Lock wait timeout exceeded; try restarting
transaction: ALTER TABLE members DROP manager

And I do not know if this is the way forward. Does any one have any
(relevant) thoughts on this?

With kind regards,
Harm

PS the actual spec:

describe Member, “should migrate properly” do
it “should migrate correctly from a column manager to a role
manager” do

 `rake db:drop`
 `rake db:create`
 `rake db:migrate VERSION=59`
 m1 = Member.new(:manager => true)
 m1.save_with_validation(false)
 m2 = Member.new(:manager => true)
 m2.save_with_validation(false)
 m3 = Member.new(:manager => true)
 m3.save_with_validation(false)
 `rake db:migrate VERSION=60`
 Member.find(m1.id).has_role?("manager").should be_true
 Member.find(m2.id).has_role?("manager").should be_true
 Member.find(m3.id).has_role?("manager").should be_true

end
end

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs