2021-07-07 10:46:50 +02:00
|
|
|
'use strict';
|
|
|
|
|
2021-08-12 15:04:37 +02:00
|
|
|
exports.up = function (db, cb) {
|
2021-07-07 10:46:50 +02:00
|
|
|
db.runSql(
|
|
|
|
`
|
|
|
|
CREATE TABLE IF NOT EXISTS environments (
|
|
|
|
name VARCHAR (100) NOT NULL PRIMARY KEY,
|
|
|
|
display_name VARCHAR (255),
|
|
|
|
created_at timestamp with time zone DEFAULT now()
|
|
|
|
);
|
|
|
|
|
|
|
|
INSERT INTO environments(name, display_name) values (':global:', 'Across all environments');
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS feature_strategies (
|
|
|
|
id TEXT PRIMARY KEY,
|
|
|
|
feature_name VARCHAR (255) NOT NULL REFERENCES features(name) ON DELETE CASCADE,
|
|
|
|
project_name VARCHAR (255) NOT NULL,
|
|
|
|
environment VARCHAR (100) NOT NULL DEFAULT ':global:' REFERENCES environments(name) ON DELETE CASCADE,
|
|
|
|
strategy_name VARCHAR (255) NOT NULL,
|
|
|
|
parameters jsonb,
|
|
|
|
constraints jsonb,
|
|
|
|
sort_order integer NOT NULL DEFAULT 9999,
|
|
|
|
created_at timestamp with time zone DEFAULT now()
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS feature_environments (
|
|
|
|
environment VARCHAR (100) NOT NULL DEFAULT ':global:' REFERENCES environments(name) ON DELETE CASCADE,
|
|
|
|
feature_name VARCHAR (255) NOT NULL REFERENCES features(name) ON DELETE CASCADE,
|
|
|
|
enabled BOOLEAN NOT NULL,
|
|
|
|
PRIMARY KEY (environment, feature_name)
|
|
|
|
|
|
|
|
);
|
|
|
|
`,
|
|
|
|
cb,
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2021-08-12 15:04:37 +02:00
|
|
|
exports.down = function (db, cb) {
|
2021-07-07 10:46:50 +02:00
|
|
|
db.runSql(
|
|
|
|
`
|
|
|
|
DROP TABLE feature_strategies;
|
|
|
|
DROP TABLE feature_environments;
|
|
|
|
DROP TABLE environments;
|
|
|
|
`,
|
|
|
|
cb,
|
|
|
|
);
|
|
|
|
};
|