mirror of https://github.com/ghostfolio/ghostfolio
Thomas
4 years ago
committed by
GitHub
2 changed files with 174 additions and 0 deletions
@ -0,0 +1,171 @@ |
|||||
|
-- CreateEnum |
||||
|
CREATE TYPE "AccountType" AS ENUM ('SECURITIES'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "Currency" AS ENUM ('CHF', 'EUR', 'USD', 'GBP'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "DataSource" AS ENUM ('GHOSTFOLIO', 'RAKUTEN', 'YAHOO', 'ALPHA_VANTAGE'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "ViewMode" AS ENUM ('DEFAULT', 'ZEN'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "Provider" AS ENUM ('GOOGLE', 'ANONYMOUS'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "Role" AS ENUM ('USER', 'ADMIN', 'DEMO'); |
||||
|
|
||||
|
-- CreateEnum |
||||
|
CREATE TYPE "Type" AS ENUM ('BUY', 'SELL'); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Access" ( |
||||
|
"granteeUserId" TEXT NOT NULL, |
||||
|
"id" TEXT NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY ("id","userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Account" ( |
||||
|
"accountType" "AccountType" NOT NULL DEFAULT E'SECURITIES', |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"id" TEXT NOT NULL, |
||||
|
"isDefault" BOOLEAN NOT NULL DEFAULT false, |
||||
|
"name" TEXT, |
||||
|
"platformId" TEXT, |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY ("id","userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Analytics" ( |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
"activityCount" INTEGER NOT NULL DEFAULT 0, |
||||
|
|
||||
|
PRIMARY KEY ("userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "MarketData" ( |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"date" TIMESTAMP(3) NOT NULL, |
||||
|
"id" TEXT NOT NULL, |
||||
|
"symbol" TEXT NOT NULL, |
||||
|
"marketPrice" DOUBLE PRECISION NOT NULL |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Order" ( |
||||
|
"currency" "Currency" NOT NULL, |
||||
|
"date" TIMESTAMP(3) NOT NULL, |
||||
|
"fee" DOUBLE PRECISION NOT NULL, |
||||
|
"id" TEXT NOT NULL, |
||||
|
"quantity" DOUBLE PRECISION NOT NULL, |
||||
|
"symbol" TEXT NOT NULL, |
||||
|
"type" "Type" NOT NULL, |
||||
|
"unitPrice" DOUBLE PRECISION NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"accountId" TEXT, |
||||
|
"accountUserId" TEXT, |
||||
|
"dataSource" "DataSource" NOT NULL DEFAULT E'YAHOO', |
||||
|
|
||||
|
PRIMARY KEY ("id","userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Platform" ( |
||||
|
"id" TEXT NOT NULL, |
||||
|
"name" TEXT, |
||||
|
"url" TEXT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY ("id") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Property" ( |
||||
|
"key" TEXT NOT NULL, |
||||
|
"value" TEXT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY ("key") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Settings" ( |
||||
|
"currency" "Currency", |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
"viewMode" "ViewMode", |
||||
|
|
||||
|
PRIMARY KEY ("userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "Subscription" ( |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"expiresAt" TIMESTAMP(3) NOT NULL, |
||||
|
"id" TEXT NOT NULL, |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"userId" TEXT NOT NULL, |
||||
|
|
||||
|
PRIMARY KEY ("id","userId") |
||||
|
); |
||||
|
|
||||
|
-- CreateTable |
||||
|
CREATE TABLE "User" ( |
||||
|
"id" TEXT NOT NULL, |
||||
|
"provider" "Provider", |
||||
|
"thirdPartyId" TEXT, |
||||
|
"accessToken" TEXT, |
||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
||||
|
"role" "Role" NOT NULL DEFAULT E'USER', |
||||
|
"updatedAt" TIMESTAMP(3) NOT NULL, |
||||
|
"alias" TEXT, |
||||
|
|
||||
|
PRIMARY KEY ("id") |
||||
|
); |
||||
|
|
||||
|
-- CreateIndex |
||||
|
CREATE UNIQUE INDEX "MarketData.date_symbol_unique" ON "MarketData"("date", "symbol"); |
||||
|
|
||||
|
-- CreateIndex |
||||
|
CREATE INDEX "MarketData.symbol_index" ON "MarketData"("symbol"); |
||||
|
|
||||
|
-- CreateIndex |
||||
|
CREATE UNIQUE INDEX "Platform.url_unique" ON "Platform"("url"); |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Access" ADD FOREIGN KEY ("granteeUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Access" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Account" ADD FOREIGN KEY ("platformId") REFERENCES "Platform"("id") ON DELETE SET NULL ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Account" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Analytics" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Order" ADD FOREIGN KEY ("accountId", "accountUserId") REFERENCES "Account"("id", "userId") ON DELETE SET NULL ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Order" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Settings" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
||||
|
|
||||
|
-- AddForeignKey |
||||
|
ALTER TABLE "Subscription" ADD FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
@ -0,0 +1,3 @@ |
|||||
|
# Please do not edit this file manually |
||||
|
# It should be added in your version-control system (i.e. Git) |
||||
|
provider = "postgresql" |
Loading…
Reference in new issue