Skip to content

Commit

Permalink
fix: add new columns in schema.sql (#469)
Browse files Browse the repository at this point in the history
* fix: add new columns in schema.sq

* test: fix test

* fix: update proposals table sql schema to match with production db

* fix: revert changes, and add notes explaning discrepancies with prod db schema

* docs: add columns name in notes
  • Loading branch information
wa0x6e authored Jan 7, 2025
1 parent 1738133 commit 640b7e5
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
7 changes: 4 additions & 3 deletions test/e2e/api.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import fetch from 'node-fetch';
import db from '../../src/helpers/mysql';
import proposalInput from '../fixtures/ingestor-payload/proposal.json';
import { spacesSqlFixtures } from '../fixtures/space';
import proposalsFixtures from '../fixtures/proposal';
import db from '../../src/helpers/mysql';
import { spacesSqlFixtures } from '../fixtures/space';

const HOST = `http://localhost:${process.env.PORT || 3003}`;
const SPACE_PREFIX = 'e2e-';
Expand Down Expand Up @@ -71,7 +71,8 @@ describe('POST /flag', () => {
plugins: JSON.stringify(proposal.plugins),
choices: JSON.stringify(proposal.choices),
scores: JSON.stringify(proposal.scores),
scores_by_strategy: JSON.stringify(proposal.scores_by_strategy)
scores_by_strategy: JSON.stringify(proposal.scores_by_strategy),
vp_value_by_strategy: JSON.stringify(proposal.vp_value_by_strategy || [])
}))
.map(async proposal => {
db.queryAsync('INSERT INTO snapshot_sequencer_test.proposals SET ?', proposal);
Expand Down
18 changes: 13 additions & 5 deletions test/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ CREATE TABLE spaces (
INDEX updated (updated)
);

-- Note: The `proposals` table schema might have some discrepancies
-- compared to the production database. This is due to legacy reasons
-- and the challenges associated with updating the schema because of its size.
-- `id` and `ipfs` columns should not have any default values.
CREATE TABLE proposals (
id VARCHAR(66) NOT NULL,
ipfs VARCHAR(64) NOT NULL,
Expand All @@ -36,8 +40,8 @@ CREATE TABLE proposals (
updated INT(11) DEFAULT NULL,
space VARCHAR(64) NOT NULL,
network VARCHAR(12) NOT NULL,
symbol VARCHAR(16) NOT NULL,
type VARCHAR(24) NOT NULL,
symbol VARCHAR(16) NOT NULL DEFAULT '',
type VARCHAR(24) NOT NULL DEFAULT '',
strategies JSON NOT NULL,
validation JSON NOT NULL,
plugins JSON NOT NULL,
Expand All @@ -49,17 +53,20 @@ CREATE TABLE proposals (
start INT(11) NOT NULL,
end INT(11) NOT NULL,
quorum DECIMAL(64,30) NOT NULL,
quorum_type VARCHAR(24) NOT NULL DEFAULT '',
quorum_type VARCHAR(24) DEFAULT '',
privacy VARCHAR(24) NOT NULL,
snapshot INT(24) NOT NULL,
app VARCHAR(24) NOT NULL,
scores JSON NOT NULL,
scores_by_strategy JSON NOT NULL,
scores_state VARCHAR(24) NOT NULL,
scores_state VARCHAR(24) NOT NULL DEFAULT '',
scores_total DECIMAL(64,30) NOT NULL,
scores_updated INT(11) NOT NULL,
scores_total_value DECIMAL(64,30) NOT NULL DEFAULT '0.000000000000000000000000000000',
vp_value_by_strategy json NOT NULL,
votes INT(12) NOT NULL,
flagged INT NOT NULL DEFAULT 0,
cb INT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
INDEX ipfs (ipfs),
INDEX author (author),
Expand All @@ -73,7 +80,8 @@ CREATE TABLE proposals (
INDEX scores_state (scores_state),
INDEX scores_updated (scores_updated),
INDEX votes (votes),
INDEX flagged (flagged)
INDEX flagged (flagged),
INDEX cb (cb)
);

CREATE TABLE votes (
Expand Down

0 comments on commit 640b7e5

Please sign in to comment.