DEV Community

Discussion on: Non-profit projects: how to work with little to no finance?

Collapse
 
vyncemontgomery profile image
Vynce Montgomery

For a small amount of data, you can run a local SQL database or, in many languages, save time and headache by storing the data in a native data structure in a flat file locally.

MySQL and PostgreSQL are good, powerful SQL engines to learn for later applicability in the real world. SQLite is easy and honestly good enough for most small projects.

In Perl, I used to use the DBD::CSV module. Similar such things probably exist in any language you're thinking of using.

Searching Google for "SQL CSV" turns up TextQL, which looks like it might be a very flexible hybrid of my responses. Another option is to use the Google Sheets API

Collapse
 
eostrom profile image
Erik Ostrom

One caution: if you go with a local database, make sure it works with your backup strategy. Standard backup software may not be enough – if the files are backed up while your database is being modified, you can end up with a backup that's part "before" and part "after," and not consistent.

Depending on your needs, you might be able to just schedule backups and database access at different times. Or use the database's backup tools (e.g., mysqldump) to make a snapshot of the database at a scheduled time, and later back that up.

Collapse
 
katieadamsdev profile image
Katie Adams

This is great advice, Erik. Thank you so much; I'd not have considered this aspect so this is super helpful. :D

Collapse
 
katieadamsdev profile image
Katie Adams

This is a great start. I'd honestly been so caught up with doing things 'right' I'd never considered just keeping things local! Thank you for this.