I'm a relatively new WordPress user, and I haven't coded much of anything in quite some time. However, I've been doing my best to pour over all the documentation that's out there regarding WordPress in an effort to understand some best practices for getting a new site up and going. I am currently working on one site, but I hope to launch many more over the coming months--thus, my search for best practices.
I started dabbling with my new site, but I soon realized that I'd need a testing environment. Therefore, after a ton of online reading, I was able to successfully establish http://dev.mysite.com, which is now basically just a mirror of http://www.mysite.com. I used the "Moving WordPress" tutorial in the Codex--and several other great resources, for that matter--to successfully make the necessary database updates, file moves, configurations, etc. My URLs seemed to work, and I was happy.
Currently, I'm in the process of establishing a local installation of WordPress using XAMPP by using the "Test Driving WordPress" tutorial in the Codex, not to mention a few other tutorials for good measure. There's enough information out there where I feel relatively confident in my ability to get that piece up and running. However, the more I learn and think about things, the more questions I have. Enter the issues described below:
Moving files seems to be relatively straightforward, as there are many comparison tools out there--and for the more ambitious, content versioning systems. However, with WordPress storing so much information in the database, I can't seem to wrap my head around how one can successfully migrate/merge database information through multiple environments.
For example, say I do some design work locally--maybe even install a plugin or two (i.e. some database changes are made). I then deploy the changes to my http://dev.mysite.com website to share the proposed changes with a client (making all the ugly database URL updates and such that are required--ugh.) Say I get the "go ahead" for production. Now what? The production database will have posts, comments, and other data present that I'll need, but it won't have the proper structure, plugins, design changes, etc. that I just made. How do I reconcile this issue? Do I only merge certain tables from the development environment? If so, where do I look to learn how to do this? Again, my mySQL and PHP skills aren't anything to write home about at the moment, but I'm getting better....
Last, how do I make a move to production without having any down time? I'm not talking about moving an entire site between servers; I'm talking about just moving incremental file and database changes. My development site and production site are on the same server, as I mentioned earlier, with the development site existing as a subdomain. I suppose I intend to use the development site somewhat like a dev/staging combo, and my local installation as a pure development environment.
All I ever heard from people before this project was how easy WordPress was to get up and working. While that might be true if you have no desire for any process or customization behind your work, I'm finding WordPress to be far from straightforward at the moment.
Any help, pointers, references, etc. would be much appreciated. I poured over anything I could get my hands on all yesterday afternoon and evening, and I still feel like I'm coming up short....
Thanks in advance for your replies! As of right now, I feel like I'm just going to have to write down all my successful changes in my development environment and then re-do them all by hand in production at 3:00 AM or something....