refactor: make migration process more intelligent, add test coverage

This commit is contained in:
2026-09-19 21:36:31 -07:00
parent ff7f0a57c8
commit 40bc0db036
6 changed files with 361 additions and 32 deletions

View File

@@ -62,8 +62,8 @@ func TestVersionUpgrade(t *testing.T) {
// Create a migration to add a new Item
migrations = append(migrations, db.Migration{ID: 1, SQL: "insert into items (rowid) values (1)"})
db.Init(&initial_schema, &migrations) // Reinitialize with the new migration
config.UpgradeFromXToY(connection, uint(len(migrations)-1), uint(len(migrations)))
config = db.Init(&initial_schema, &migrations) // Reinitialize with the new migration
require.NoError(config.CheckAndUpdateVersion(connection))
var items2 []int
require.NoError(connection.Select(&items2, "select * from items"))
@@ -73,7 +73,7 @@ func TestVersionUpgrade(t *testing.T) {
// Create a migration to add a new Item
migrations = append(migrations, db.Migration{ID: 2, SQL: `alter table items add column name string default 'asdf'`})
config = db.Init(&initial_schema, &migrations) // Reinitialize with the new migration
config.UpgradeFromXToY(connection, uint(len(migrations)-1), uint(len(migrations)))
require.NoError(config.CheckAndUpdateVersion(connection))
var items3 []struct {
ID uint64 `db:"rowid"`