mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-25 03:44:29 +03:00
f45198245f
refs https://github.com/TryGhost/Ghost/issues/10318 `Settings.populateDefaults()` is run before migrations during Ghost's startup. This can cause problems when new settings table columns are added (and populated in `default-settings.json`) because `populateDefaults()` was using the model layer which assumes that those columns are available, resulting in `ER_BAD_FIELD_ERROR: Unknown column` type errors. - query the database for the available `settings` table columns - switch to using raw knex queries without Bookshelf for insertions so that we're in control of the columns that are added - use `_.pick` to skip any properties in `default-settings.json` that do not match to an available column - those columns will be added and populated by later migrations - moving away from using the model to insert settings has the side-effect of not emitting `settings.added/edited` and `settings.x.added/edited` events, this should be fine because `populateDefaults()` is called before anything else is set up and listening - added a call to `populateDefaults()` in our knex-migrator "before migration" hook so that we have consistent db state across both startup initialised migrations and manually triggered knex migrations |
||
---|---|---|
.. | ||
api | ||
exporter | ||
importer | ||
migrations | ||
models | ||
site | ||
update-check | ||
README.md |
Regression Tests
This folder should contain packages which we test in a cron job once per day. These tests should ensure that we don't break Ghost.
The goal is that most of these packages use Ghost's API's to test behaviours, otherwise transform the tests into unit tests.