An opinionated file structure
SchemaSmithy has a convention over configuration approach similar to a Ruby on Rails or Chef project.
The following structure is based on the Test Product.
The folder structure for scripts and most objects is fully configurable in the Product and Template .json files.
The execution order is determined first by the quench slot for the folder, next by the order each
base folder appears within the configuration file and finally by alpha sorting the files within
the folder by name. At the template level, scripts in the before, after tables, and after slots
will run only once by default. You can have them run every time if the file name ends with
[ALWAYS] before the .sql extension. SchemaQuench
will ignore other file extensions.
Additionally, after tables are updated, any object that failed to apply before updating tables is applied again until all dependencies are satisfied, or further progress cannot be made because there is a legitimate error.