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:
@@ -1,7 +1,49 @@
|
||||
package attach
|
||||
|
||||
import "github.com/go-gormigrate/gormigrate/v2"
|
||||
import (
|
||||
"github.com/go-gormigrate/gormigrate/v2"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// Migrations is the framework-owned system_files set. lagoon.Migrate
|
||||
// runs it before every plugin set (D-14).
|
||||
var Migrations = []*gormigrate.Migration{}
|
||||
// Migrations creates Winter's system_files table. Folded from
|
||||
// modules/system/database/migrations/2013_10_01_000002_Db_System_Files.php
|
||||
// and 2025_04_10_000031_Db_Add_System_Files_Metadata.php.
|
||||
var Migrations = []*gormigrate.Migration{
|
||||
{
|
||||
ID: "202609180001_create_system_files",
|
||||
Migrate: func(tx *gorm.DB) error {
|
||||
stmts := []string{
|
||||
`CREATE TABLE system_files (
|
||||
id SERIAL PRIMARY KEY,
|
||||
disk_name TEXT NOT NULL,
|
||||
file_name TEXT NOT NULL,
|
||||
file_size INTEGER NOT NULL,
|
||||
content_type TEXT NOT NULL,
|
||||
title TEXT,
|
||||
description TEXT,
|
||||
field TEXT,
|
||||
attachment_id TEXT,
|
||||
attachment_type TEXT,
|
||||
is_public BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
sort_order INTEGER,
|
||||
metadata TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
)`,
|
||||
`CREATE INDEX system_files_field_index ON system_files (field)`,
|
||||
`CREATE INDEX system_files_attachment_id_index ON system_files (attachment_id)`,
|
||||
`CREATE INDEX system_files_attachment_type_index ON system_files (attachment_type)`,
|
||||
`CREATE INDEX system_files_attachment_lookup_index ON system_files (attachment_type, attachment_id, field)`,
|
||||
}
|
||||
for _, stmt := range stmts {
|
||||
if err := tx.Exec(stmt).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
},
|
||||
Rollback: func(tx *gorm.DB) error {
|
||||
return tx.Exec("DROP TABLE IF EXISTS system_files").Error
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user