I currently have a website with three builds: development, staging and production. Each of those has it’s own MySQL database instance. Each of the instances has different data in it which should not change (orders).
My question is, if I made changes to the structure of the development database, is there an easy way to propogate those changes to staging and production without affecting the data?
Thanks.
Just do all of your schema changes with scripts which you keep in source control. When you release code to staging, then you will ship with the build the scripts to update the schema, and use the same ones when you ship to production.
It’s that easy.
Don’t EVER manually hack the database schema. Test your migration and rollback scripts (making rollback scripts is a VERY good idea).