Skip to content

Commit

Permalink
test: add some migrations tests
Browse files Browse the repository at this point in the history
  • Loading branch information
gfyrag committed Oct 2, 2024
1 parent ff57a1b commit 6437b27
Show file tree
Hide file tree
Showing 24 changed files with 637 additions and 406 deletions.
2 changes: 1 addition & 1 deletion internal/storage/bucket/bucket.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func (b *Bucket) Migrate(ctx context.Context) error {
}

func (b *Bucket) IsUpToDate(ctx context.Context) (bool, error) {
ret, err := getMigrator(b.name).IsUpToDate(ctx, b.db)
ret, err := GetMigrator(b.name).IsUpToDate(ctx, b.db)
if err != nil && errors.Is(err, migrations.ErrMissingVersionTable) {
return false, nil
}
Expand Down
4 changes: 2 additions & 2 deletions internal/storage/bucket/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
//go:embed migrations
var migrationsDir embed.FS

func getMigrator(name string) *migrations.Migrator {
func GetMigrator(name string) *migrations.Migrator {

migrator := migrations.NewMigrator(migrations.WithSchema(name, true))
migrator.RegisterMigrationsFromFileSystem(migrationsDir, "migrations", func(s string) string {
Expand All @@ -39,5 +39,5 @@ func Migrate(ctx context.Context, db bun.IDB, name string) error {
ctx, span := tracing.Start(ctx, "Migrate bucket")
defer span.End()

return getMigrator(name).Up(ctx, db)
return GetMigrator(name).Up(ctx, db)
}
34 changes: 34 additions & 0 deletions internal/storage/bucket/migrations/11-drop-triggers.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
drop trigger "insert_account" on "{{.Bucket}}".accounts;
drop trigger "update_account" on "{{.Bucket}}".accounts;
drop trigger "insert_transaction" on "{{.Bucket}}".transactions;
drop trigger "update_transaction" on "{{.Bucket}}".transactions;
drop trigger "insert_log" on "{{.Bucket}}".logs;

drop aggregate "{{.Bucket}}".aggregate_objects(jsonb);
drop aggregate "{{.Bucket}}".first(anyelement);

drop function "{{.Bucket}}".array_distinct(anyarray);
drop function "{{.Bucket}}".insert_posting(_transaction_seq bigint, _ledger character varying, _insertion_date timestamp without time zone, _effective_date timestamp without time zone, posting jsonb, _account_metadata jsonb);
drop function "{{.Bucket}}".upsert_account(_ledger character varying, _address character varying, _metadata jsonb, _date timestamp without time zone, _first_usage timestamp without time zone);
drop function "{{.Bucket}}".get_latest_move_for_account_and_asset(_ledger character varying, _account_address character varying, _asset character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".update_transaction_metadata(_ledger character varying, _id numeric, _metadata jsonb, _date timestamp without time zone);
drop function "{{.Bucket}}".delete_account_metadata(_ledger character varying, _address character varying, _key character varying, _date timestamp without time zone);
drop function "{{.Bucket}}".delete_transaction_metadata(_ledger character varying, _id numeric, _key character varying, _date timestamp without time zone);
drop function "{{.Bucket}}".balance_from_volumes(v "{{.Bucket}}".volumes);
drop function "{{.Bucket}}".get_all_account_volumes(_ledger character varying, _account character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".first_agg(anyelement, anyelement);
drop function "{{.Bucket}}".volumes_to_jsonb(v "{{.Bucket}}".volumes_with_asset);
drop function "{{.Bucket}}".get_account_aggregated_effective_volumes(_ledger character varying, _account_address character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".handle_log();
drop function "{{.Bucket}}".get_account_aggregated_volumes(_ledger character varying, _account_address character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".get_aggregated_volumes_for_transaction(_ledger character varying, tx numeric);
drop function "{{.Bucket}}".insert_move(_transactions_seq bigint, _ledger character varying, _insertion_date timestamp without time zone, _effective_date timestamp without time zone, _account_address character varying, _asset character varying, _amount numeric, _is_source boolean, _account_exists boolean);
drop function "{{.Bucket}}".get_all_assets(_ledger character varying);
drop function "{{.Bucket}}".insert_transaction(_ledger character varying, data jsonb, _date timestamp without time zone, _account_metadata jsonb);
drop function "{{.Bucket}}".get_all_account_effective_volumes(_ledger character varying, _account character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".get_account_balance(_ledger character varying, _account character varying, _asset character varying, _before timestamp without time zone);
drop function "{{.Bucket}}".get_aggregated_effective_volumes_for_transaction(_ledger character varying, tx numeric);
drop function "{{.Bucket}}".aggregate_ledger_volumes(_ledger character varying, _before timestamp without time zone, _accounts character varying[], _assets character varying[] );
drop function "{{.Bucket}}".get_transaction(_ledger character varying, _id numeric, _before timestamp without time zone);
--drop function "{{.Bucket}}".explode_address(_address character varying);
drop function "{{.Bucket}}".revert_transaction(_ledger character varying, _id numeric, _date timestamp without time zone);
Loading

0 comments on commit 6437b27

Please sign in to comment.