The problem with best practice #3 is that the database itself may change in ways that make your schema creation scripts no longer work. So I’d view practice 3 as a guideline (“should” not “must”), but you also need to be able to modify schema creation scripts if necessary.
Also, the title should be “Database schema versioning best practices” because versioning the data is a whole different kettle of fish.
Has anyone read the linked book? Would you recommend it? I’m mostly interested in techniques for doing database migrations without application downtime.