I have some queries for which I need your inputs, these are detailed below (the list is long but pls bear with me). Basically I wish to know what process do you follow when you release your application.

1) Do you use a deployment tool for releasing the app? Like Jenkings?
a) If yes, does your deployment tool takes care of all the process automatically viz. New Database setup on the targeted server, applying folder permissions etc.?
b) Is there any manual deployment involved anywhere or the entire deployment process is automated?

2) If you are releasing your application for testing purpose to the QA department, do you build new database for each release?
a) what naming convention do you follow for the database name if the above case is true?

3) If you are using a version control system (SVN, Mercurial, Git etc) do you maintain the database version also?
a) How often do you commit your database to the repository? Is it every time there is a release or is it every time there is a change in the structure of the database?

4) Assuming there was a project that was made live a couple of months back, now the client comes back to you requesting for some changes, would you consider the code base that is on the live server to be the latest one or the one that you have in your version control system to be the latest one?
a) How do you manage the content that is on the live server which was uploaded / added during these months by the users / admins of the website? Do you download them all and commit them to the version control repository?

5) And last but not the least, could you please refer me some documents where I can learn a standard deployment process that is being followed by companies?