0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00
ghost/core/server
Kevin Ansfield 426cbeec0f
🐛 Fixed performance regression introduced in 4.1.0 (#12807)
closes https://github.com/TryGhost/Ghost/issues/12791
closes https://github.com/TryGhost/Team/issues/566

https://github.com/TryGhost/Ghost/pull/12787 introduced a significant performance regression due to a misunderstanding of when Bookshelf calls `.format()` ([related upstream issue](https://github.com/bookshelf/bookshelf/issues/668)). We expected `.format()` to only be called on save but it's also called when Bookshelf performs fetching and eager loading which happens frequently. `.format()` can be a heavy method as it needs to parse and serialize html and markdown so it should be performed as infrequently as possible.

- override `sync()` in the base model so we can call our own `.formatOnWrite()` method to transform attributes on `update` and `insert` operations
  - this was the only feasible location in Bookshelf I could find that is low enough level to not require modifying model instance attributes
  - gives models the option to perform heavy transform operations only when writing to the database compared to the usual `.format()` method that is also called on fetch in many situations
2021-03-23 09:11:24 +00:00
..
adapters
api Removed redundant code for handling orphaned webhooks 2021-03-22 15:48:51 +01:00
data 🐛 Fixed unable to delete member (#12784) 2021-03-18 22:20:58 +05:30
lib Added mobiledoc.ghostVersion to blank mobiledoc document 2021-02-15 18:10:56 +00:00
models 🐛 Fixed performance regression introduced in 4.1.0 (#12807) 2021-03-23 09:11:24 +00:00
public New logo in Admin (#12768) 2021-03-18 17:27:27 +00:00
services Fixed email preheaders 2021-03-23 09:49:33 +01:00
translations Added ability to install themes directly from GitHub (#12635) 2021-02-12 09:19:17 +00:00
views Added new, simpler, linear boot process 2021-02-08 11:56:44 +00:00
web 💥 Removed the /redirects/json route alias 2021-03-17 15:58:28 +01:00
analytics-events.js Wrapped analytics tracker in try-catch 2021-02-24 15:57:38 +00:00
ghost-server.js Cleaned up use of express in ghost-server 2021-02-23 12:33:00 +00:00
notify.js Refactored notify to send started + ready 2021-02-19 20:42:10 +00:00
overrides.js Moved sqlite3 override rules to db connection lib 2021-02-05 11:51:56 +00:00
update-check.js