feat(05-04): implement attach File, Thumb, blob bucket, system_files migration

- Winter-exact thumb filename and 3x3 partition with lazy imaging resize
- gocloud.dev/blob fileblob/memblob; empty bucket_url fails boot
- lagoon.Migrate runs system_files before every plugin set
This commit is contained in:
Jakub Zych
2026-09-18 19:55:15 +02:00
parent 2d84ae4565
commit ba9c99246e
6 changed files with 262 additions and 16 deletions

View File

@@ -6,6 +6,7 @@ import (
"strings"
"unicode"
"git.golem15.com/golem15/summercms/lagoon/attach"
"git.golem15.com/golem15/summercms/pact"
"git.golem15.com/golem15/summercms/party"
"github.com/go-gormigrate/gormigrate/v2"
@@ -56,11 +57,19 @@ func migrator(gdb *gorm.DB, pluginID string, migrations []*gormigrate.Migration)
}, migrations), nil
}
// Migrate runs each plugin's HasMigrations set in party.Activate order.
// Migrate runs the framework-owned system_files set first, then each
// plugin's HasMigrations set in party.Activate order.
func Migrate(gdb *gorm.DB, plugins []party.Plugin) error {
if gdb == nil {
return fmt.Errorf("lagoon: gorm db is nil")
}
m, err := migrator(gdb, "summercms.attach", attach.Migrations)
if err != nil {
return err
}
if err := m.Migrate(); err != nil {
return fmt.Errorf("lagoon: migrate system_files: %w", err)
}
for _, p := range plugins {
hm, ok := p.(pact.HasMigrations)
if !ok {