Flat files and data portability

The more I work with flat files, the more I love them over a traditional database setup. Let’s dig in!
What is flat file storage? A flat is just a file you can read and write with a text editor program. It could be .txt or markdown, but it might also be .json or YAML or something else.
A year or so ago, I migrated all of my membership sites over to flat files.


This content originally appeared on Go Make Things and was authored by Go Make Things

The more I work with flat files, the more I love them over a traditional database setup. Let’s dig in!

What is flat file storage?

A flat is just a file you can read and write with a text editor program. It could be .txt or markdown, but it might also be .json or YAML or something else.

A year or so ago, I migrated all of my membership sites over to flat files.

Every user has a JSON file with their password (hashed, of course!) and an array of their purchases. Every session token is a JSON file with the associated username stored in it. All of the files are stored in a nonpublic part of the server that cannot be accessed with HTTP.

On the backend, I can use PHP to read the file contents, parse it JSON, and extract values. It works more-or-less like how a SQL database would, but less complicated.

Why flat file storage rocks

It makes local development, debugging, and fixing things really easy.

I can download files and open them in Sublime text to figure out what’s wrong. I can move files from my computer to the server and back. I never have to write a SQL query. Hell, I can just browse with FTP if I want!

(Just to reiterate, I cannot read or view user passwords. They’re hashed using PHP’s built-in password hash and validation algorithm, which is currently BCrypt.)

Data portability

All of this is about to payoff big for me, because I need to migrate servers.

For nearly a decade, I’ve used ServerPilot to manage a dozen or so websites on a single DigitalOcean droplet.

That used to be hard to do, and ServerPilot made it easy. Now, DigitalOcean has tons of tutorials on how to do the same thing yourself.

A year ago, ServerPilot informed me they wouldn’t be updating my server anymore, because the Linux version is too old. They recommend migrating to a new droplet rather than updating (I tried and stuff kept breaking).

But migrating would mean I’d lose the grandfathered free plan I was on.

Then, a few months ago, they mentioned the “free forever” plan I was on (that is no longer available), is not actually free forever. They’re getting rid of it, and I won’t be able to manage my sites through ServerPilot anymore until I switch to a paid plan.

I’m not mad. I’ve gotten a very valuable service for free for years, and this stuff costs money to run. But the price jump is not insignificant.

If I still had databases to migrate, I’d be freaking out. But I don’t!

Now, migrating is as simple as downloading some files with an SFTP client, then uploading them to a new server.

What about performance?

One of the criticisms of flat file storage is performance.

I imagine if I had a single JSON file with all of my customers, and lots of looking up to do, a SQL server probably would be more performant.

But I don’t have that.

I have lots of small files, one for each customer. I get the file, read a value from it or write a new value into it, and then I’m done. It’s all very fast.

🎉 Preorder Getting Sh!t Done today and get 40% off! Be more productive, get more done, and feel more in-control of your work and life. Click here to learn more.


This content originally appeared on Go Make Things and was authored by Go Make Things


Print Share Comment Cite Upload Translate Updates
APA

Go Make Things | Sciencx (2024-08-09T14:30:00+00:00) Flat files and data portability. Retrieved from https://www.scien.cx/2024/08/09/flat-files-and-data-portability/

MLA
" » Flat files and data portability." Go Make Things | Sciencx - Friday August 9, 2024, https://www.scien.cx/2024/08/09/flat-files-and-data-portability/
HARVARD
Go Make Things | Sciencx Friday August 9, 2024 » Flat files and data portability., viewed ,<https://www.scien.cx/2024/08/09/flat-files-and-data-portability/>
VANCOUVER
Go Make Things | Sciencx - » Flat files and data portability. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/08/09/flat-files-and-data-portability/
CHICAGO
" » Flat files and data portability." Go Make Things | Sciencx - Accessed . https://www.scien.cx/2024/08/09/flat-files-and-data-portability/
IEEE
" » Flat files and data portability." Go Make Things | Sciencx [Online]. Available: https://www.scien.cx/2024/08/09/flat-files-and-data-portability/. [Accessed: ]
rf:citation
» Flat files and data portability | Go Make Things | Sciencx | https://www.scien.cx/2024/08/09/flat-files-and-data-portability/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.