Schemint

paste PostgreSQL or JSON, get your schema reviewed like a senior would

Convert MySQL to PostgreSQL online

Paste MySQL, get PostgreSQL. Nothing you paste is stored.

Paste MySQL SQL (a CREATE TABLE or a query) and get the PostgreSQL equivalent. The conversions that usually bite are handled: AUTO_INCREMENT becomes GENERATED BY DEFAULT AS IDENTITY, TINYINT(1) becomes BOOLEAN (with its default), ENUM becomes VARCHAR with a CHECK, unsigned integers go up one size so the range still fits, inline KEY indexes become separate CREATE INDEX statements, and ENGINE=/CHARSET= options are dropped.

Converted on the server, discarded after the response.

Try it on your own schema

Example

MySQL in:

CREATE TABLE `product` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `sku` VARCHAR(40) NOT NULL,
    `name` VARCHAR(200) NOT NULL,
    `price` DECIMAL(12, 2) NOT NULL,
    `in_stock` TINYINT(1) NOT NULL DEFAULT 1,
    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_product_sku` (`sku`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Generated:

postgres.sql

CREATE TABLE "product" (
  "id" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  "sku" VARCHAR(40) NOT NULL,
  "name" VARCHAR(200) NOT NULL,
  "price" DECIMAL(12, 2) NOT NULL,
  "in_stock" BOOLEAN NOT NULL DEFAULT TRUE,
  "created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY ("id"),
  CONSTRAINT "uq_product_sku" UNIQUE (
    "sku"
  )
);

Related