I've got a project approaching which involves a desktop application (tournament scoring to have an amateur competition) that most likely 99+% of times is a single-user on one machine, no network connectivity, etc. For your, sqlite will probably work superbly. For individuals other couple of occasions when there are several people, using more than one computer, and some type of network... they'd ideally have to have the ability to enter data (event registration and investing in scores) to some central database like a MySQL or PostgreSQL server. I do not picture an excuse for syncing data between your local (sqlite) and remote databases, only a have to have the ability to switch via preferences or configuration file which type of database this program should connect to another time its began (together with the bond info for just about any remote database).

I am a newcomer only at that type of programming, and will also likely take us a good while to obtain where I would like it... but I'd would rather avoid heading down the incorrect path in early stages (a minimum of on major such things as this). Given my limited knowledge of such things as ORMs it appears like this is a near-ideal use for something similar to SQLAlchemy, no? Or would the 'batteries included' python db-api be generic enough with this type of task?



Yes, SQLAlchemy will help you be independent on which SQL database you utilize, and you receive a nice ORM too. Highly suggested.

I do not observe how individuals 2 use cases would make use of the same techniques. Just produce a wrapper module that conditionally imports either the sqlite or sqlalchemy modules or other things you'll need.