35 lines
1.1 KiB
SQL
35 lines
1.1 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "S3Bucket" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"name" TEXT NOT NULL,
|
|
"accountId" TEXT NOT NULL,
|
|
"region" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "S3Object" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"bucketId" TEXT NOT NULL,
|
|
"key" TEXT NOT NULL,
|
|
"versionId" TEXT,
|
|
"content" BLOB NOT NULL,
|
|
"contentType" TEXT NOT NULL DEFAULT 'application/octet-stream',
|
|
"size" INTEGER NOT NULL,
|
|
"etag" TEXT NOT NULL,
|
|
"metadata" TEXT NOT NULL DEFAULT '{}',
|
|
"storageClass" TEXT NOT NULL DEFAULT 'STANDARD',
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "S3Object_bucketId_fkey" FOREIGN KEY ("bucketId") REFERENCES "S3Bucket" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "S3Bucket_accountId_region_name_key" ON "S3Bucket"("accountId", "region", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "S3Object_bucketId_idx" ON "S3Object"("bucketId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "S3Object_bucketId_key_key" ON "S3Object"("bucketId", "key");
|