#ALTER TABLE and "data loss" warning added when creating a migration, even if no changes made

2 messages · Page 1 of 1 (latest)

rancid hound
#

My schema```generator client {
provider = "prisma-client-js"
}

datasource db {
provider = "mysql"
url = env("DATABASE_URL")
shadowDatabaseUrl = env("TEST_DATABASE_URL")
}

model School {
id Int @id @default(autoincrement()) @db.UnsignedInt
name String?
users User[]
}

model User {
id Int @id @default(autoincrement()) @db.UnsignedInt
school School @relation(fields: [school_id], references: [id])
school_id Int @db.UnsignedInt
google_sub String @db.VarChar(255)
is_teacher Boolean @default(false) @db.Bit(1)
sessions Session[]
}

model Session {
uuid_bin Bytes @unique @db.Binary(16)
user User @relation(fields: [user_id], references: [id])
user_id Int @db.UnsignedInt
createdAt DateTime @default(now())
expires DateTime @db.Timestamp()
}

#

The initial migration```sql
-- CreateTable
CREATE TABLE School (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(191) NULL,

PRIMARY KEY (`id`)

) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE User (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
school_id INTEGER UNSIGNED NOT NULL,
google_sub VARCHAR(255) NOT NULL,
is_teacher BIT(1) NOT NULL DEFAULT false,

PRIMARY KEY (`id`)

) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE Session (
uuid_bin BINARY(16) NOT NULL,
user_id INTEGER UNSIGNED NOT NULL,
createdAt DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
expires TIMESTAMP NOT NULL,

UNIQUE INDEX `Session_uuid_bin_key`(`uuid_bin`)

) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- AddForeignKey
ALTER TABLE User ADD CONSTRAINT User_school_id_fkey FOREIGN KEY (school_id) REFERENCES School(id) ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE Session ADD CONSTRAINT Session_user_id_fkey FOREIGN KEY (user_id) REFERENCES User(id) ON DELETE RESTRICT ON UPDATE CASCADE;