add unique constraint

This commit is contained in:
2024-04-19 18:18:16 +07:00
parent 5eda99b443
commit 6e58e17be1

View File

@@ -3,6 +3,7 @@ import {
text, text,
integer, integer,
primaryKey, primaryKey,
unique,
} from "drizzle-orm/sqlite-core"; } from "drizzle-orm/sqlite-core";
import { relations, sql } from "drizzle-orm"; import { relations, sql } from "drizzle-orm";
@@ -41,7 +42,7 @@ export const userRelation = relations(user, ({ many, one }) => ({
//----------------Group //----------------Group
export const group = sqliteTable("groups", { export const group = sqliteTable("groups", {
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }), id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
name: text("name").notNull(), name: text("name").unique().notNull(),
}); });
export const groupRelation = relations(group, ({ many }) => ({ export const groupRelation = relations(group, ({ many }) => ({
@@ -51,7 +52,7 @@ export const groupRelation = relations(group, ({ many }) => ({
//----------------Opinion //----------------Opinion
export const opinion = sqliteTable("opinions", { export const opinion = sqliteTable("opinions", {
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }), id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
name: text("name").notNull(), name: text("name").unique().notNull(),
type: text("type", { enum: ["3Choice", "4Choice"] }) type: text("type", { enum: ["3Choice", "4Choice"] })
.default("3Choice") .default("3Choice")
.notNull(), .notNull(),
@@ -84,13 +85,17 @@ export const userOpinionRelation = relations(userOpinion, ({ one }) => ({
})); }));
//----------------Zone //----------------Zone
export const zone = sqliteTable("zones", { export const zone = sqliteTable(
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }), "zones",
name: text("name").notNull(), {
province: integer("province_id") id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
.notNull() name: text("name").notNull(),
.references(() => province.id), province: integer("province_id")
}); .notNull()
.references(() => province.id),
},
(t) => ({ unique_name_province: unique().on(t.name, t.province) })
);
export const zoneRelation = relations(zone, ({ one }) => ({ export const zoneRelation = relations(zone, ({ one }) => ({
province: one(province, { province: one(province, {
fields: [zone.province], fields: [zone.province],
@@ -101,7 +106,7 @@ export const zoneRelation = relations(zone, ({ one }) => ({
//----------------Province //----------------Province
export const province = sqliteTable("provinces", { export const province = sqliteTable("provinces", {
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }), id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
name: text("name").notNull(), name: text("name").unique().notNull(),
}); });
export const provinceRelation = relations(province, ({ many }) => ({ export const provinceRelation = relations(province, ({ many }) => ({