diff --git a/Makefile b/Makefile index 223d7fd..02fbe49 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ BIN = $(GOPATH)/bin ## Migration tool GOOSE = $(BIN)/goose $(BIN)/goose: - GO111MODULE=off go get -u github.com/pressly/goose/cmd/goose + go get -u github.com/pressly/goose/cmd/goose .PHONY: installtools installtools: | $(GOOSE) diff --git a/README.md b/README.md index ed4e601..57e86db 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Schemas and utils for IPLD ETH Postgres database * Edit [startup_script.sh](./scripts/startup_script.sh) to change the number of migrations to be run: ```bash - ./goose -dir migrations/vulcanizedb postgres "$VDB_PG_CONNECT" up-to 21 + ./goose -dir migrations/vulcanizedb postgres "$VDB_PG_CONNECT" up-to 24 ``` * In another `ipld-eth-db` terminal window, build an image `migrations-test` using [Dockerfile](./db/Dockerfile): diff --git a/db/migrations/00017_create_eth_meta_schema.sql b/db/migrations/00017_create_eth_meta_schema.sql new file mode 100644 index 0000000..448cc91 --- /dev/null +++ b/db/migrations/00017_create_eth_meta_schema.sql @@ -0,0 +1,5 @@ +-- +goose Up +CREATE SCHEMA eth_meta; + +-- +goose Down +DROP SCHEMA eth_meta; diff --git a/db/migrations/00018_create_watched_addresses_table.sql b/db/migrations/00018_create_watched_addresses_table.sql new file mode 100644 index 0000000..a8f009f --- /dev/null +++ b/db/migrations/00018_create_watched_addresses_table.sql @@ -0,0 +1,10 @@ +-- +goose Up +CREATE TABLE eth_meta.watched_addresses ( + address VARCHAR(66) PRIMARY KEY, + created_at BIGINT NOT NULL, + watched_at BIGINT NOT NULL, + last_filled_at BIGINT NOT NULL DEFAULT 0 +); + +-- +goose Down +DROP TABLE eth_meta.watched_addresses; diff --git a/db/migrations/00019_create_known_gaps_table.sql b/db/migrations/00019_create_known_gaps_table.sql new file mode 100644 index 0000000..4a7c730 --- /dev/null +++ b/db/migrations/00019_create_known_gaps_table.sql @@ -0,0 +1,10 @@ +-- +goose Up +CREATE TABLE eth_meta.known_gaps ( + starting_block_number bigint PRIMARY KEY, + ending_block_number bigint, + checked_out boolean, + processing_key bigint +); + +-- +goose Down +DROP TABLE eth_meta.known_gaps; diff --git a/db/migrations/00017_update_db_version.sql b/db/migrations/00020_update_db_version.sql similarity index 100% rename from db/migrations/00017_update_db_version.sql rename to db/migrations/00020_update_db_version.sql diff --git a/db/migrations/00018_add_data_nodes.sql b/db/migrations/00021_add_data_nodes.sql similarity index 100% rename from db/migrations/00018_add_data_nodes.sql rename to db/migrations/00021_add_data_nodes.sql diff --git a/db/migrations/00019_convert_to_distributed_hypertables.sql b/db/migrations/00022_convert_to_distributed_hypertables.sql similarity index 100% rename from db/migrations/00019_convert_to_distributed_hypertables.sql rename to db/migrations/00022_convert_to_distributed_hypertables.sql diff --git a/db/migrations/00020_attach_data_nodes.sql b/db/migrations/00023_attach_data_nodes.sql similarity index 100% rename from db/migrations/00020_attach_data_nodes.sql rename to db/migrations/00023_attach_data_nodes.sql diff --git a/db/migrations/00021_create_stored_functions.sql b/db/migrations/00024_create_stored_functions.sql similarity index 100% rename from db/migrations/00021_create_stored_functions.sql rename to db/migrations/00024_create_stored_functions.sql diff --git a/db/migrations/00022_set_replication_factor.sql b/db/migrations/00025_set_replication_factor.sql similarity index 100% rename from db/migrations/00022_set_replication_factor.sql rename to db/migrations/00025_set_replication_factor.sql diff --git a/schema.sql b/schema.sql index 1fb4ecb..b661cad 100644 --- a/schema.sql +++ b/schema.sql @@ -37,6 +37,13 @@ COMMENT ON EXTENSION timescaledb IS 'Enables scalable inserts and complex querie CREATE SCHEMA eth; +-- +-- Name: eth_meta; Type: SCHEMA; Schema: -; Owner: - +-- + +CREATE SCHEMA eth_meta; + + SET default_tablespace = ''; SET default_table_access_method = heap; @@ -534,6 +541,30 @@ CREATE TABLE eth.uncle_cids ( ); +-- +-- Name: known_gaps; Type: TABLE; Schema: eth_meta; Owner: - +-- + +CREATE TABLE eth_meta.known_gaps ( + starting_block_number bigint NOT NULL, + ending_block_number bigint, + checked_out boolean, + processing_key bigint +); + + +-- +-- Name: watched_addresses; Type: TABLE; Schema: eth_meta; Owner: - +-- + +CREATE TABLE eth_meta.watched_addresses ( + address character varying(66) NOT NULL, + created_at bigint NOT NULL, + watched_at bigint NOT NULL, + last_filled_at bigint DEFAULT 0 NOT NULL +); + + -- -- Name: blocks; Type: TABLE; Schema: public; Owner: - -- @@ -695,6 +726,22 @@ ALTER TABLE ONLY eth.uncle_cids ADD CONSTRAINT uncle_cids_pkey PRIMARY KEY (block_hash, block_number); +-- +-- Name: known_gaps known_gaps_pkey; Type: CONSTRAINT; Schema: eth_meta; Owner: - +-- + +ALTER TABLE ONLY eth_meta.known_gaps + ADD CONSTRAINT known_gaps_pkey PRIMARY KEY (starting_block_number); + + +-- +-- Name: watched_addresses watched_addresses_pkey; Type: CONSTRAINT; Schema: eth_meta; Owner: - +-- + +ALTER TABLE ONLY eth_meta.watched_addresses + ADD CONSTRAINT watched_addresses_pkey PRIMARY KEY (address); + + -- -- Name: blocks blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- diff --git a/scripts/startup_script.sh b/scripts/startup_script.sh index 0d3375c..a8f60c9 100755 --- a/scripts/startup_script.sh +++ b/scripts/startup_script.sh @@ -9,7 +9,7 @@ VDB_PG_CONNECT=postgresql://$DATABASE_USER:$DATABASE_PASSWORD@$DATABASE_HOSTNAME echo "Connecting with: $VDB_PG_CONNECT" sleep 15 echo "Running database migrations" -./goose -dir migrations/vulcanizedb postgres "$VDB_PG_CONNECT" up-to 21 +./goose -dir migrations/vulcanizedb postgres "$VDB_PG_CONNECT" up-to 24 # If the db migrations ran without err if [[ $? -eq 0 ]]; then