1.rails generate migration AddPhoneToTickets phone:string
2.rails records the latest timestamp of all the migrations it runs (and runs only the latest ones)
3.because they make the partial less dependent on other code
4.it can do more complex things like modifying the database structure and running tests