diff --git a/drizzle/0000_handy_bishop.sql b/drizzle/0000_handy_bishop.sql new file mode 100644 index 0000000..5dd468e --- /dev/null +++ b/drizzle/0000_handy_bishop.sql @@ -0,0 +1,8 @@ +CREATE TABLE `urls` ( + `id` integer PRIMARY KEY NOT NULL, + `short` text NOT NULL, + `long` text NOT NULL +); +--> statement-breakpoint +CREATE UNIQUE INDEX `urls_short_unique` ON `urls` (`short`);--> statement-breakpoint +CREATE UNIQUE INDEX `urls_long_unique` ON `urls` (`long`); \ No newline at end of file diff --git a/drizzle/0000_nervous_satana.sql b/drizzle/0000_nervous_satana.sql deleted file mode 100644 index d041112..0000000 --- a/drizzle/0000_nervous_satana.sql +++ /dev/null @@ -1,5 +0,0 @@ -CREATE TABLE `urls` ( - `id` integer PRIMARY KEY NOT NULL, - `short` text NOT NULL, - `long` text NOT NULL -); diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json index 172a577..f832d93 100644 --- a/drizzle/meta/0000_snapshot.json +++ b/drizzle/meta/0000_snapshot.json @@ -1,7 +1,7 @@ { "version": "5", "dialect": "sqlite", - "id": "c7d4fd2e-7fb1-4d63-994b-df46a1bed9b0", + "id": "2faa6e6e-6e40-4b2d-bb17-7fcd34216875", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { "urls": { @@ -29,7 +29,22 @@ "autoincrement": false } }, - "indexes": {}, + "indexes": { + "urls_short_unique": { + "name": "urls_short_unique", + "columns": [ + "short" + ], + "isUnique": true + }, + "urls_long_unique": { + "name": "urls_long_unique", + "columns": [ + "long" + ], + "isUnique": true + } + }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {} diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index f6102f1..f3b874a 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -5,8 +5,8 @@ { "idx": 0, "version": "5", - "when": 1710347878065, - "tag": "0000_nervous_satana", + "when": 1710855367595, + "tag": "0000_handy_bishop", "breakpoints": true } ] diff --git a/package.json b/package.json index cf2aa6b..0b4236e 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "dev": "wrangler dev", "start": "wrangler dev", "db:query": " npx wrangler d1 execute url-shortener --local --command='SELECT * FROM urls'", - "db:init": "npx wrangler d1 execute url-shortener --local --file=./drizzle/0000_nervous_satana.sql", - "db:generate": "drizzle-kit generate:sqlite --schema=src/schema.ts", + "db:init": "npx wrangler d1 execute url-shortener --local --file=./drizzle/0000_handy_bishop.sql", + "db:generate": "drizzle-kit generate:sqlite --schema=src/db/schema.ts", "test": "npm run test:unit && npm run test:integration", "test:unit": "jest --runInBand **/*.spec.ts", "test:integration": "jest --runInBand test/**/*.test.ts", diff --git a/src/db/schema.ts b/src/db/schema.ts index 443bfc9..b537d34 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -2,6 +2,6 @@ import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core'; export const urls = sqliteTable('urls', { id: integer('id').primaryKey(), - short: text('short').notNull(), - long: text('long').notNull(), + short: text('short').notNull().unique(), + long: text('long').notNull().unique(), });