add prisma ORM with initial tables
Signed-off-by: Frieder Schlesier <frieder@fschl.de>
This commit is contained in:
parent
a28803d2e3
commit
24cdde85d8
|
@ -0,0 +1,7 @@
|
||||||
|
# Environment variables declared in this file are automatically made available to Prisma.
|
||||||
|
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
|
||||||
|
|
||||||
|
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
|
||||||
|
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
|
||||||
|
|
||||||
|
DATABASE_URL="file:./dev-test.db"
|
|
@ -1,3 +1,7 @@
|
||||||
|
# database
|
||||||
|
*.db
|
||||||
|
*.db-journal
|
||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Event" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"titleFormatted" TEXT NOT NULL,
|
||||||
|
"locationFormatted" TEXT NOT NULL,
|
||||||
|
"descriptionDescriptionFormatted" TEXT NOT NULL,
|
||||||
|
"dateTime" TEXT NOT NULL,
|
||||||
|
"endDateTime" TEXT NOT NULL,
|
||||||
|
"isOfficial" BOOLEAN NOT NULL,
|
||||||
|
"videoUrl" TEXT NOT NULL,
|
||||||
|
"group" INTEGER NOT NULL,
|
||||||
|
"createdBy" INTEGER NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "EventState" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"publishYoutube" BOOLEAN NOT NULL,
|
||||||
|
"publishFacebook" BOOLEAN NOT NULL,
|
||||||
|
"publishInstagram" BOOLEAN NOT NULL,
|
||||||
|
"eventId" INTEGER NOT NULL,
|
||||||
|
CONSTRAINT "EventState_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event" ("id") ON DELETE RESTRICT 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 = "sqlite"
|
|
@ -0,0 +1,36 @@
|
||||||
|
// This is your Prisma schema file,
|
||||||
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||||
|
|
||||||
|
generator client {
|
||||||
|
provider = "prisma-client-js"
|
||||||
|
}
|
||||||
|
|
||||||
|
datasource db {
|
||||||
|
provider = "sqlite"
|
||||||
|
url = env("DATABASE_URL")
|
||||||
|
}
|
||||||
|
|
||||||
|
model Event {
|
||||||
|
id Int @id
|
||||||
|
titleFormatted String
|
||||||
|
locationFormatted String
|
||||||
|
descriptionDescriptionFormatted String
|
||||||
|
dateTime String
|
||||||
|
endDateTime String
|
||||||
|
isOfficial Boolean
|
||||||
|
videoUrl String
|
||||||
|
group Int
|
||||||
|
createdBy Int
|
||||||
|
EventState EventState[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// pub time, url/id
|
||||||
|
// TODO: add publish dates, store links
|
||||||
|
model EventState {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
event Event @relation(fields: [eventId], references: [id])
|
||||||
|
publishYoutube Boolean
|
||||||
|
publishFacebook Boolean
|
||||||
|
publishInstagram Boolean
|
||||||
|
eventId Int
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { PrismaClient } from '@prisma/client'
|
||||||
|
|
||||||
|
const prisma = new PrismaClient()
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
// ... you will write your Prisma Client queries here
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
.then(async () => {
|
||||||
|
await prisma.$disconnect()
|
||||||
|
})
|
||||||
|
.catch(async (e) => {
|
||||||
|
console.error(e)
|
||||||
|
await prisma.$disconnect()
|
||||||
|
process.exit(1)
|
||||||
|
})
|
Loading…
Reference in New Issue