migrations

package
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2023 License: MIT Imports: 1 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Migrations = []migrate.Migration{
	{
		Name: "2022-08-04.0.init.sql",
		SQL: `
			CREATE TABLE merkle_trees (
				root bytea,
				addresses bytea[] NOT NULL,
				PRIMARY KEY (root)
			);
			CREATE TABLE merkle_proofs (
				root bytea NOT NULL,
				address bytea NOT NULL,
				proof bytea[] NOT NULL
			);
			CREATE UNIQUE INDEX ON merkle_proofs(root, address);
		`,
	},
	{
		Name: "2022-08-05.0.rename.sql",
		SQL: `
			ALTER TABLE merkle_trees
			RENAME COLUMN addresses TO unhashed_leaves;

			ALTER TABLE merkle_trees
			ADD COLUMN ltd text[];

			ALTER TABLE merkle_trees
			ADD COLUMN packed boolean;

			ALTER TABLE merkle_proofs
			ADD COLUMN unhashed_leaf bytea NOT NULL;

			ALTER TABLE merkle_proofs
			ALTER COLUMN address
			DROP NOT NULL;

			DROP INDEX merkle_proofs_root_address_idx;
			CREATE UNIQUE INDEX on merkle_proofs(root, unhashed_leaf);
		`,
	},
	{
		Name: "2022-08-17.0.proofs.sql",
		SQL: `
			ALTER TABLE merkle_trees
			ADD COLUMN proofs jsonb;
		`,
	},
	{
		Name: "2022-08-18.0.drop-proofs.sql",
		SQL: `
			DROP TABLE merkle_proofs;
		`,
	},
	{
		Name: "2022-08-18.1.rename-trees.sql",
		SQL: `
			ALTER TABLE merkle_trees RENAME TO trees;
		`,
	},
	{
		Name: "2022-08-22.0.add-proof-idx.sql",
		SQL: `
		    CREATE INDEX on trees USING gin(proofs jsonb_path_ops);
		`,
	},
	{
		Name: "2022-08-22.1.add-inserted-at.sql",
		SQL: `
		ALTER TABLE trees
		ADD COLUMN "inserted_at" timestamptz NOT NULL DEFAULT now();
		`,
	},
	{
		Name: "2022-08-30.0.packed-bool.sql",
		SQL: `
		UPDATE trees SET packed = true
		WHERE packed IS NULL;

		ALTER TABLE trees
		ALTER COLUMN packed
		SET NOT NULL;
		`,
	},
	{
		Name: "2022-08-31.0.root-func-index.sql",
		SQL: `
		CREATE OR REPLACE FUNCTION proofs_array (data jsonb)
			RETURNS text[]
			AS $CODE$
		BEGIN
			RETURN ARRAY (
				SELECT
					jsonb_array_elements(data) ->> 'proof');
		END
		$CODE$
		LANGUAGE plpgsql
		IMMUTABLE;

		CREATE INDEX proofs_arr_idx ON trees USING GIN ((proofs_array(proofs)));
		DROP INDEX "trees_proofs_idx";
	`,
	},
	{
		Name: "2022-10-07.0.trees-proofs.sql",
		SQL: `
		DROP INDEX proofs_arr_idx;
		CREATE TABLE trees_proofs (
			root bytea PRIMARY KEY,
			proofs jsonb,
			inserted_at timestamp with time zone NOT NULL DEFAULT now()
		);
		CREATE INDEX proofs_arr_idx ON trees_proofs USING GIN ((proofs_array(proofs)));
		`,
	},
	{
		Name: "2023-06-26.0.proofs_hashes.sql",
		SQL: `
		CREATE TABLE IF NOT EXISTS proofs_hashes (
			hash bytea,
			root bytea
		);
		CREATE INDEX IF NOT EXISTS proofs_hashes_hash_idx ON proofs_hashes (hash);
		`,
	},
	{
		Name: "2023-06-26.1.drop_data.sql",
		SQL: `
		ALTER TABLE "trees" DROP COLUMN "proofs";
		DROP TABLE "trees_proofs";
		`,
	},
}

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
scripts

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL