1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-01 00:08:27 +01:00
unleash.unleash/docs/schema.md
2016-09-06 21:31:59 +02:00

72 lines
3.5 KiB
Markdown

# Schema
## Table: _migrations_
Used by db-migrate module to keep track of migrations.
| NAME | TYPE | SIZE | NULLABLE | COLUMN_DEF |
| ----------- | --------- | ----------- | -------- | -------------------------------------- |
| id | serial | 10 | 0 | nextval('migrations_id_seq'::regclass) |
| name | varchar | 255 | 0 | (null) |
| run_on | timestamp | 29 | 0 | (null) |
## Table: _events_
| NAME | TYPE | SIZE | NULLABLE | COLUMN_DEF |
| ----------- | --------- | ----------- | -------- | ---------------------------------- |
| id | serial | 10 | 0 | nextval('events_id_seq'::regclass) |
| created_at | timestamp | 29 | 1 | now() |
| type | varchar | 255 | 0 | (null) |
| created_by | varchar | 255 | 0 | (null) |
| data | json | 2147483647 | 1 | (null) |
## Table: _strategies_loc
| NAME | TYPE | SIZE | NULLABLE | COLUMN_DEF |
| ------------------- | --------- | ----------- | -------- | ---------- |
| created_at | timestamp | 29 | 1 | now() |
| name | varchar | 255 | 0 | (null) |
| description | text | 2147483647 | 1 | (null) |
| parameters_template | json | 2147483647 | 1 | (null) |
## Table: _features_
| **NAME** | **TYPE** | **SIZE** | **NULLABLE** | **COLUMN_DEF** | **COMMENT** |
| ------------- | --------- | ----------- | ------------ | -------------- | ----------- |
| created_at | timestamp | 29 | 1 | now() | |
| name | varchar | 255 | 0 | (null) | |
| enabled | int4 | 10 | 1 | 0 | |
| description | text | 2147483647 | 1 | (null) | |
| archived | int4 | 10 | 1 | 0 | |
| parameters | json | 2147483647 | 1 | (null) | deprecated (*) |
| strategy_name | varchar | 255 | 1 | (null) | deprecated (*) |
| strategies | json | 2147483647 | 1 | (null) | |
(*) we migrated from `parmaters` and `strategy_name` to `strategies` which should contain an array of these.
For [aggregate strategies](https://github.com/finn-no/unleash/issues/102) we had the following sql to migrate to the strategies column:
```sql
ALTER TABLE features ADD "strategies" json;
--populate the strategies column
UPDATE features
SET strategies = ('[{"name":"'||f.strategy_name||'","parameters":'||f.parameters||'}]')::json
FROM features as f
WHERE f.name = features.name;
```
In order to migrate back, one can use the following sql (it will loose all, but the first activation strategy):
```sql
UPDATE features
SET strategy_name = f.strategies->0->>'name',
parameters = f.strategies->0->'parameters'
FROM features as f
WHERE f.name = features.name;
ALTER TABLE features DROP COLUMN "strategies";
```