What would be the best way to manage the databases of hobby projects?
Requirements:
- It should be as easy as possible. If it is hard, the project will stall.
- It should provide easy way to get testing copy to avoid doing development in production.
- It should provide reliable way to upgrade the production database schema to new version.
- It should provide a way to make a new database. Note that as there is usually the only one production environment, this won't usually get used. This is more to have the possibility in case of a problem.
- It would be nice to be able to use the same thing for different databases. For example PostgreSQL for projects needing a real database and SQLite for projects where the database need to be copied between computers.
- It needs to be free and work in Linux.
I'm mostly doing my hobby projects with Python.