mirror of https://github.com/ghostfolio/ghostfolio
				
				
			
							committed by
							
								 GitHub
								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