I'm wondering how databases are handled in free projects that are usually located in databases like Resumes or SVN. Placing codes within the SVN is extremely logical because it enables different team people to obtain up-to-date bits of code but what about databases?
Are their schemas and contents (.sql files I suppose) placed within the SVN too? Within this situation basically were developing a web application, would this require designers to help keep on upgrading their local databases using the latest .sql file?
Or, could it be a lot more like getting a central server which people can modify as well as their software just connects to in excess of the internet?
I am likely to start a wide open source web application project (which requires using a database) but am a little confused of how to pull off the database management part.
Typically you'd include a couple of things:
- Schema creation scripts
- Initial data to become loaded in to the database
These two ought to be text files. In case your data needs any special processing prior to it being loaded in to the DBMS, then incorporate a tool for your too.
One factor you need to not do is include any particular binary database file inside your source control. For instance, a SQLite database file wouldn't be appropriate. Binary database files aren't normally portable across architectures or versions.
In my opinion these kinds of programs usually incorporate a database setup incorporated using the build. Usually you need to install the DB where you really need it then install the customer. Also, these databases will also be free like MySQL or something like that.
This is dependent around the project you do. For instance if all of the designers have been in same location in a single company, the central database server might be applicaple. When the designers are distributed all over the world, then your central database server is most likely unthinkable and each developer produces their own copy of database for development.
I'd believe that most typical choice is that each developer uses their own database.
Regardless you will want to keep your schema creation and initial data creation files in version control. By doing this all of the designers can produce a new database easily.