klhztrader/KLHZ.Trader.Infrastructure/postgres/init.sql

50 lines
1.5 KiB
SQL

drop table if exists trades;
create table trades
(
trade_id bigserial,
account_id text not null,
bought_at timestamp default current_timestamp,
figi text not null,
ticker text not null,
price decimal not null,
count decimal not null,
count_lots decimal not null,
archive_status int not null default 0,
direction int not null default 1,
position_type int not null default 1,
asset_type int not null default 1,
primary key (trade_id,archive_status)
) partition by list (archive_status);
create table assets_active partition of trades for values in (0);
create table assets_archive partition of trades for values in (1);
CREATE INDEX assets_account_id_index ON trades USING btree(account_id);
CREATE INDEX assets_figi_index ON trades USING btree(figi);
drop table if exists price_changes;
create table price_changes
(
id bigserial,
time timestamp default current_timestamp,
figi text not null,
ticker text not null,
value decimal not null,
primary key (id)
);
CREATE INDEX price_changes_figi_index ON price_changes USING btree(figi, time);
drop table if exists declisions;
create table declisions
(
id bigserial,
time timestamp default current_timestamp,
figi text not null,
price decimal not null,
ticker text not null,
account_id text not null,
action int not null default 0,
primary key (id)
);
CREATE INDEX declisions_index ON declisions USING btree(figi, time);