11import { sqldef , getFullVersion } from "./sqldef_browser.mjs" ;
2+ import { schemaExamples } from "./schema_examples.mjs" ;
23
34const dbType = document . getElementById ( "dbType" ) ;
45const enableDrop = document . getElementById ( "enableDrop" ) ;
@@ -10,135 +11,6 @@ const outputDown = document.getElementById("outputDown");
1011const errorDown = document . getElementById ( "errorDown" ) ;
1112const versionEl = document . getElementById ( "version" ) ;
1213
13- const schemaExamples = {
14- mysql : {
15- current : `CREATE TABLE authors (
16- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
17- name VARCHAR(255) NOT NULL
18- ) Engine=InnoDB DEFAULT CHARSET=utf8mb4;
19-
20- CREATE TABLE books (
21- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
22- title VARCHAR(255) NOT NULL,
23- author_id BIGINT UNSIGNED NOT NULL,
24- price DECIMAL(10, 2) NOT NULL,
25- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
26- ) Engine=InnoDB DEFAULT CHARSET=utf8mb4;` ,
27- desired : `CREATE TABLE authors (
28- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
29- name VARCHAR(255) NOT NULL
30- ) Engine=InnoDB DEFAULT CHARSET=utf8mb4;
31-
32- CREATE TABLE books (
33- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
34- title VARCHAR(255) NOT NULL,
35- author_id BIGINT UNSIGNED NOT NULL,
36- price DECIMAL(10, 2) NOT NULL,
37- stock INT NOT NULL DEFAULT 0,
38- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
39- CONSTRAINT chk_price CHECK (price > 0),
40- CONSTRAINT chk_stock CHECK (stock >= 0),
41- INDEX idx_author (author_id),
42- INDEX idx_price (price)
43- ) Engine=InnoDB DEFAULT CHARSET=utf8mb4;` ,
44- } ,
45- postgres : {
46- current : `CREATE TABLE authors (
47- id BIGSERIAL PRIMARY KEY,
48- name VARCHAR(255) NOT NULL
49- );
50-
51- CREATE TABLE books (
52- id BIGSERIAL PRIMARY KEY,
53- title VARCHAR(255) NOT NULL,
54- author_id BIGINT NOT NULL,
55- price DECIMAL(10, 2) NOT NULL,
56- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
57- );` ,
58- desired : `CREATE TABLE authors (
59- id BIGSERIAL PRIMARY KEY,
60- name VARCHAR(255) NOT NULL
61- );
62-
63- CREATE TABLE books (
64- id BIGSERIAL PRIMARY KEY,
65- title VARCHAR(255) NOT NULL,
66- author_id BIGINT NOT NULL,
67- price DECIMAL(10, 2) NOT NULL,
68- stock INT NOT NULL DEFAULT 0,
69- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
70- CONSTRAINT chk_price CHECK (price > 0),
71- CONSTRAINT chk_stock CHECK (stock >= 0)
72- );
73-
74- CREATE INDEX idx_books_author ON books(author_id);
75- CREATE INDEX idx_books_price ON books(price);` ,
76- } ,
77- sqlite3 : {
78- current : `CREATE TABLE authors (
79- id INTEGER PRIMARY KEY AUTOINCREMENT,
80- name TEXT NOT NULL
81- );
82-
83- CREATE TABLE books (
84- id INTEGER PRIMARY KEY AUTOINCREMENT,
85- title TEXT NOT NULL,
86- author_id INTEGER NOT NULL,
87- price REAL NOT NULL,
88- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
89- );` ,
90- desired : `CREATE TABLE authors (
91- id INTEGER PRIMARY KEY AUTOINCREMENT,
92- name TEXT NOT NULL
93- );
94-
95- CREATE TABLE books (
96- id INTEGER PRIMARY KEY AUTOINCREMENT,
97- title TEXT NOT NULL,
98- author_id INTEGER NOT NULL,
99- price REAL NOT NULL,
100- stock INTEGER NOT NULL DEFAULT 0,
101- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
102- CONSTRAINT chk_price CHECK (price > 0),
103- CONSTRAINT chk_stock CHECK (stock >= 0)
104- );
105-
106- CREATE INDEX idx_books_author ON books(author_id);
107- CREATE INDEX idx_books_price ON books(price);` ,
108- } ,
109- mssql : {
110- current : `CREATE TABLE authors (
111- id BIGINT IDENTITY(1,1) PRIMARY KEY,
112- name NVARCHAR(255) NOT NULL
113- );
114-
115- CREATE TABLE books (
116- id BIGINT IDENTITY(1,1) PRIMARY KEY,
117- title NVARCHAR(255) NOT NULL,
118- author_id BIGINT NOT NULL,
119- price DECIMAL(10, 2) NOT NULL,
120- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
121- );` ,
122- desired : `CREATE TABLE authors (
123- id BIGINT IDENTITY(1,1) PRIMARY KEY,
124- name NVARCHAR(255) NOT NULL
125- );
126-
127- CREATE TABLE books (
128- id BIGINT IDENTITY(1,1) PRIMARY KEY,
129- title NVARCHAR(255) NOT NULL,
130- author_id BIGINT NOT NULL,
131- price DECIMAL(10, 2) NOT NULL,
132- stock INT NOT NULL DEFAULT 0,
133- CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
134- CONSTRAINT chk_price CHECK (price > 0),
135- CONSTRAINT chk_stock CHECK (stock >= 0)
136- );
137-
138- CREATE INDEX idx_books_author ON books(author_id);
139- CREATE INDEX idx_books_price ON books(price);` ,
140- } ,
141- } ;
14214
14315async function runDiff ( ) {
14416 // Run up diff (current -> desired)
0 commit comments