drizzle-team / drizzle-kit-mirror

Docs and issues repository for drizzle-kit
287 stars 16 forks source link

Primary key not generated in schema.ts #332

Open Vic-M opened 3 months ago

Vic-M commented 3 months ago

When running drizzle-kit introspect:mysql, no primary keys are generated for table properties in the resulting schema.ts.

Steps to reproduce

Generate database:

CREATE DATABASE IF NOT EXISTS `TestDb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */;
USE `TestDb`;

CREATE TABLE IF NOT EXISTS `TestTable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `value` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

Introspect the database schema:

drizzle-kit introspect:mysql

Output

schema.ts

import { mysqlTable, mysqlSchema, AnyMySqlColumn, int, varchar } from "drizzle-orm/mysql-core"
import { sql } from "drizzle-orm"

export const testTable = mysqlTable("TestTable", {
    id: int("id").autoincrement().notNull(),
    value: varchar("value", { length: 50 }).notNull(),
});

Expected

import { mysqlTable, mysqlSchema, AnyMySqlColumn, int, varchar } from "drizzle-orm/mysql-core"
import { sql } from "drizzle-orm"

export const testTable = mysqlTable("TestTable", {
    id: int("id").primaryKey().autoincrement().notNull(),
    value: varchar("value", { length: 50 }).notNull(),
});

Notes

drizzle-orm version: 0.30.1 drizzle-kit version: 0.20.14 mysql2 version: 3.9.2 database: MariaDB 10.6.15

KyuubiTila commented 2 months ago

This, but for postgres

import { relations } from 'drizzle-orm'; import { integer, pgTable, serial, text, timestamp, varchar, } from 'drizzle-orm/pg-core';

export const users = pgTable('users', { id: serial('id').primaryKey(), username: text('username'), email: text('email'), password: varchar('password', { length: 256 }), createdAt: timestamp('createdAt').defaultNow().notNull(), updatedAt: timestamp('updatedAt').defaultNow().notNull(), });

rogerhlg commented 3 days ago

exacly same problem here!