53 lines
1.9 KiB
SQL
53 lines
1.9 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "TrafficStatus" AS ENUM ('NORMAL', 'WARNING', 'LIMITED');
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "instances" ADD COLUMN "monthly_traffic_limit" BIGINT,
|
|
ADD COLUMN "monthly_traffic_used" BIGINT NOT NULL DEFAULT 0,
|
|
ADD COLUMN "traffic_status" "TrafficStatus" NOT NULL DEFAULT 'NORMAL';
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "user_quotas" ADD COLUMN "extra_traffic_quota" BIGINT NOT NULL DEFAULT 0,
|
|
ADD COLUMN "extra_traffic_used" BIGINT NOT NULL DEFAULT 0,
|
|
ADD COLUMN "monthly_traffic_limit" BIGINT,
|
|
ADD COLUMN "monthly_traffic_used" BIGINT NOT NULL DEFAULT 0,
|
|
ADD COLUMN "traffic_status" "TrafficStatus" NOT NULL DEFAULT 'NORMAL',
|
|
ADD COLUMN "traffic_warning_sent_at" TIMESTAMP(3);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "traffic_snapshots" (
|
|
"id" SERIAL NOT NULL,
|
|
"instance_id" INTEGER NOT NULL,
|
|
"rx_raw" BIGINT NOT NULL,
|
|
"tx_raw" BIGINT NOT NULL,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "traffic_snapshots_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "daily_traffic" (
|
|
"id" SERIAL NOT NULL,
|
|
"instance_id" INTEGER NOT NULL,
|
|
"date" DATE NOT NULL,
|
|
"rx_total" BIGINT NOT NULL,
|
|
"tx_total" BIGINT NOT NULL,
|
|
|
|
CONSTRAINT "daily_traffic_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "traffic_snapshots_instance_id_key" ON "traffic_snapshots"("instance_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "daily_traffic_instance_id_date_idx" ON "daily_traffic"("instance_id", "date");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "daily_traffic_instance_id_date_key" ON "daily_traffic"("instance_id", "date");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "traffic_snapshots" ADD CONSTRAINT "traffic_snapshots_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "daily_traffic" ADD CONSTRAINT "daily_traffic_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|