Well, your question is actually very important for any database developer, and if I understand it correctly, there is another way to achieve the desired results.
It is interesting to note that your idea of ​​splitting various changes into different files is the concept of Ruby On Rails migration. You can even use rake to track workflows like yours.
But now, what I think is your decision. PostgreSQL and others, to be honest, have specific utilities for processing data and schemas, for example, what you probably need.
The pg_dumpall command line executable will download the entire database to a file or console so that the psql utility can simply "reload" into the same or another (virgin) database.
So, if you want to save only the current schema (without data!) Of a working database cluster, you can, as a user of the postgres process owner:
$ pg_dumpall --schema-only > schema.sql
Now, schema.sql will contain exactly the same users / databases / tables / triggers / etc, but not the data. If you want to have a "full backup" dump style (and one way to make a full backup of the database), simply remove the "only schema" option from the command line.
You can reload the file into another (it must be virgin, you can ruin the database with other data):
$ psql -f schema.sql postgres
Now, if you want to dump only one database, one table, etc., you should use the pg_dump utility.
$ pg_dump --schema-only <database> > database-schema.sql
And then, to reload the database into a running postgresql server:
$ psql <database> < database-schema.sql
As for version control, you can just save the schema.sql file under it and just dump the database back into the file before each vc commit. That way, in some particular version control state, you will have the code and the working database schema that go with it.
Oh, and all the tools I mentioned are free, and pg_dump and pg_dumpall come with a standard PostgreSQL installation.
Hope this helps,
Marco