We have a single installation of Craft that is live and with lots of users and lead generation going. Now the client would like to have a staging environment where we can prepare new pages, or add scripts and test them before going live.
I know about staging in PHP, where you modify a file(s) and when it works on the test server, you copy it over and overwrite the file(s) in production.
But can this be done in a cms like craft where the database is also affected? Like we create in staging a new template, in the craft admin backend we create the article, with the form (we use Formbuilder). Then when the client is happy can I just 'push a button' and have it live in production?
I guess i have to copy template, and affected database tables over to the production server, but how to know what DB tables have been modified ?