* update to use go-storage/ instead of go-store/v2/storage/
* pull in latest version from codeberg
* remove test output 😇
* add code comments
* set the exclusive bit when creating new files in disk config
* bump to actual release version
* bump to v0.1.1 (tis a simple no-logic change)
* update readme
* only use a temporary read seeker when decoding video if required (should only be S3 now)
* use fastcopy library to use memory pooled buffers when calling TempFileSeeker()
* update to use seek call in serveFileRange()
As a template, take one of the existing migration files and modify it, or use the below code snippet:
// GoToSocial
// Copyright (C) GoToSocial Authors admin@gotosocial.org
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
packagemigrationsimport("context""github.com/uptrace/bun")funcinit(){up:=func(ctxcontext.Context,db*bun.DB)error{returndb.RunInTx(ctx,nil,func(ctxcontext.Context,txbun.Tx)error{// your logic here
returnnil})}down:=func(ctxcontext.Context,db*bun.DB)error{returndb.RunInTx(ctx,nil,func(ctxcontext.Context,txbun.Tx)error{// your logic here
returnnil})}iferr:=Migrations.Register(up,down);err!=nil{panic(err)}}
File format
Bun requires a very specific format: 14 digits, then letters or underscores.
You can use the following bash command on your branch to generate a suitable migration filename.
echo"$(date --utc +%Y%m%d%H%M%S | head -c 14)_$(git rev-parse --abbrev-ref HEAD).go"
Rules of thumb
DON'T DROP TABLES!!!!!!!!
Don't make something NOT NULL if it's likely to already contain null fields.