Umstellung auf PostgresDB & user Table & update drizzle
This commit is contained in:
@@ -1,37 +1,45 @@
|
||||
import { sql } from 'drizzle-orm';
|
||||
import * as t from 'drizzle-orm/sqlite-core';
|
||||
import { integer, real, sqliteTable as table, text } from 'drizzle-orm/sqlite-core';
|
||||
import * as t from 'drizzle-orm/pg-core';
|
||||
import { pgEnum, pgTable as table } from 'drizzle-orm/pg-core';
|
||||
|
||||
export const Deck = table(
|
||||
'Deck',
|
||||
export const rolesEnum = pgEnum('roles', ['admin', 'guest', 'pro']);
|
||||
|
||||
export const deck = table(
|
||||
'deck',
|
||||
{
|
||||
id: integer('id').primaryKey({ autoIncrement: true }),
|
||||
deckname: text('deckname').notNull(),
|
||||
bildname: text('bildname'),
|
||||
bildid: text('bildid'),
|
||||
x1: real('x1'),
|
||||
x2: real('x2'),
|
||||
y1: real('y1'),
|
||||
y2: real('y2'),
|
||||
due: integer('due'),
|
||||
ivl: real('ivl'),
|
||||
factor: real('factor'),
|
||||
reps: integer('reps'),
|
||||
lapses: integer('lapses'),
|
||||
isGraduated: integer('isGraduated'),
|
||||
user: text('user').notNull(),
|
||||
inserted: text().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte
|
||||
updated: text().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte
|
||||
},
|
||||
table => {
|
||||
return {
|
||||
index: t.uniqueIndex('email_idx').on(table.id),
|
||||
};
|
||||
id: t.integer('id').primaryKey().generatedAlwaysAsIdentity(),
|
||||
deckname: t.varchar('deckname').notNull(),
|
||||
bildname: t.varchar('bildname'),
|
||||
bildid: t.varchar('bildid'),
|
||||
x1: t.real('x1'),
|
||||
x2: t.real('x2'),
|
||||
y1: t.real('y1'),
|
||||
y2: t.real('y2'),
|
||||
due: t.integer('due'),
|
||||
ivl: t.real('ivl'),
|
||||
factor: t.real('factor'),
|
||||
reps: t.integer('reps'),
|
||||
lapses: t.integer('lapses'),
|
||||
isGraduated: t.integer('isgraduated'),
|
||||
user: t.varchar('user').notNull(),
|
||||
inserted: t.varchar().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte
|
||||
updated: t.varchar().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte
|
||||
},
|
||||
table => [t.uniqueIndex('deck_idx').on(table.id)],
|
||||
);
|
||||
|
||||
export type InsertDeck = typeof Deck.$inferInsert;
|
||||
export type SelectDeck = typeof Deck.$inferSelect;
|
||||
export const users = table(
|
||||
'users',
|
||||
{
|
||||
id: t.integer().primaryKey().generatedAlwaysAsIdentity(),
|
||||
name: t.varchar('name', { length: 256 }),
|
||||
email: t.varchar().notNull(),
|
||||
role: rolesEnum().default('guest'),
|
||||
sign_in_provider: t.varchar('sign_in_provider', { length: 50 }),
|
||||
},
|
||||
table => [t.uniqueIndex('users_idx').on(table.id)],
|
||||
);
|
||||
export type InsertDeck = typeof deck.$inferInsert;
|
||||
export type SelectDeck = typeof deck.$inferSelect;
|
||||
export interface User {
|
||||
name: string;
|
||||
picture: string;
|
||||
|
||||
Reference in New Issue
Block a user