Skip to content

Commit

Permalink
fix(feature-toggle): changes to make it more generic (#2142)
Browse files Browse the repository at this point in the history
MIGRATION CHANGE:
migration-20231222053654- changed table name
migration-20210913104858- changed table name
migration-20230612141912- table name chnaged

BREAKING CHANGE:
db schema changes

gh-2141
  • Loading branch information
yeshamavani committed Aug 1, 2024
1 parent b69cda1 commit abb415a
Show file tree
Hide file tree
Showing 17 changed files with 879 additions and 715 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
DROP TABLE IF EXISTS features;
DROP TABLE IF EXISTS strategies;
DROP TABLE IF EXISTS feature_toggles;
DROP TABLE IF EXISTS feature_values;
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
-- creating features table
CREATE TABLE features (
id VARCHAR(36) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
`key` VARCHAR(50) NOT NULL,
description VARCHAR(50),
default_value BOOL DEFAULT true NOT NULL,
id TEXT NOT NULL PRIMARY KEY,
name TEXT NOT NULL,
`key` TEXT NOT NULL,
description TEXT,
default_value TEXT NOT NULL,
type TEXT NOT NULL,
metadata TEXT,
created_by VARCHAR(100),
modified_by VARCHAR(100),
created_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
modified_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
deleted BOOL DEFAULT false NOT NULL,
deleted_on TIMESTAMP,
deleted_by VARCHAR(36)
deleted_by VARCHAR(100)
);

-- adding triggers
Expand All @@ -24,16 +25,16 @@ SET NEW.id = IFNULL(NEW.id, uuid());
-- creating strategies table
CREATE TABLE strategies (
id VARCHAR(36) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
`key` VARCHAR(50) NOT NULL,
name TEXT NOT NULL,
`key` TEXT NOT NULL,
priority INTEGER,
created_by VARCHAR(100),
modified_by VARCHAR(100),
created_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
modified_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
deleted BOOL DEFAULT false NOT NULL,
deleted_on TIMESTAMP,
deleted_by VARCHAR(36)
deleted_by VARCHAR(100)
);

-- adding triggers
Expand All @@ -42,25 +43,26 @@ BEFORE INSERT ON strategies
FOR EACH ROW
SET NEW.id = IFNULL(NEW.id, uuid());

-- creating feature_toggles table
CREATE TABLE feature_toggles (
-- creating feature_values table
CREATE TABLE feature_values (
id VARCHAR(36) NOT NULL PRIMARY KEY,
feature_key VARCHAR(50) NOT NULL,
strategy_key VARCHAR(50) NOT NULL,
feature_key TEXT NOT NULL,
strategy_key TEXT NOT NULL,
strategy_entity_id VARCHAR(36),
status BOOL DEFAULT true NOT NULL,
values TEXT,
created_by VARCHAR(100),
modified_by VARCHAR(100),
created_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
modified_on TIMESTAMP DEFAULT current_timestamp NOT NULL,
deleted BOOL DEFAULT false NOT NULL,
deleted_on TIMESTAMP,
deleted_by VARCHAR(36)
deleted_by VARCHAR(100)
);

-- adding triggers
CREATE TRIGGER before_insert_trigger_feature_toggles
BEFORE INSERT ON feature_toggles
CREATE TRIGGER before_insert_trigger_feature_values
BEFORE INSERT ON feature_values
FOR EACH ROW
SET NEW.id = IFNULL(NEW.id, uuid());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,30 @@ GRANT ALL ON SCHEMA main TO public;

CREATE TABLE main.features (
id uuid DEFAULT md5(random()::text || clock_timestamp()::text)::uuid NOT NULL,
name varchar(50) NOT NULL ,
key varchar(50) NOT NULL ,
description varchar(50) ,
default_value bool DEFAULT true NOT NULL ,
name text NOT NULL ,
key text NOT NULL ,
description text ,
default_value text ,
type text ,
CONSTRAINT pk_features_id PRIMARY KEY ( id )
);

CREATE TABLE main.strategies (
id uuid DEFAULT md5(random()::text || clock_timestamp()::text)::uuid NOT NULL,
name varchar(50) NOT NULL ,
key varchar(50) NOT NULL ,
priority integer ,
name text NOT NULL ,
key text NOT NULL ,
priority integer ,
CONSTRAINT pk_strategies_id PRIMARY KEY ( id )
);

CREATE TABLE main.feature_toggles (
id uuid DEFAULT md5(random()::text || clock_timestamp()::text)::uuid NOT NULL,
feature_key varchar(50) NOT NULL ,
CREATE TABLE main.feature_values (
id uuid DEFAULT md5(random()::text || clock_timestamp()::text)::uuid NOT NULL,
feature_key varchar(50) NOT NULL ,
strategy_key varchar(50) NOT NULL ,
strategy_entity_id uuid ,
status bool DEFAULT true NOT NULL ,
CONSTRAINT pk_feature_toggles_id PRIMARY KEY ( id )
strategy_entity_id uuid NULL,
status bool DEFAULT true NOT NULL ,
value text,
CONSTRAINT pk_feature_values_id PRIMARY KEY ( id )
);

INSERT INTO main.strategies(name, key, priority)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ drop column deleted ,
drop column deleted_on ,
drop column deleted_by;

ALTER TABLE main.feature_toggles
ALTER TABLE main.feature_values
drop column created_by,
drop column modified_by ,
drop column created_on ,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* Replace with your SQL commands */

ALTER TABLE main.features
ADD metadata text,
ADD metadata TEXT,
ADD created_by varchar(100),
ADD modified_by varchar(100),
ADD created_on timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL ,
Expand All @@ -19,7 +19,7 @@ ADD deleted bool DEFAULT false NOT NULL ,
ADD deleted_on timestamptz ,
ADD deleted_by uuid ;

ALTER TABLE main.feature_toggles
ALTER TABLE main.feature_values
ADD created_by varchar(100),
ADD modified_by varchar(100),
ADD created_on timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL ,
Expand Down
Loading

0 comments on commit abb415a

Please sign in to comment.