Skip to content

Commit 8884f80

Browse files
committed
split example data to schema_example.ms
1 parent 4449d59 commit 8884f80

File tree

2 files changed

+139
-129
lines changed

2 files changed

+139
-129
lines changed

app.mjs

Lines changed: 1 addition & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { sqldef, getFullVersion } from "./sqldef_browser.mjs";
2+
import { schemaExamples } from "./schema_examples.mjs";
23

34
const dbType = document.getElementById("dbType");
45
const enableDrop = document.getElementById("enableDrop");
@@ -10,135 +11,6 @@ const outputDown = document.getElementById("outputDown");
1011
const errorDown = document.getElementById("errorDown");
1112
const 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

14315
async function runDiff() {
14416
// Run up diff (current -> desired)

schema_examples.mjs

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
/**
2+
* @typedef {Object} SchemaExample
3+
* @property {string} current
4+
* @property {string} desired
5+
*/
6+
7+
/**
8+
* @type {Record<string, SchemaExample>}
9+
*/
10+
export const schemaExamples = {
11+
mysql: {
12+
current: `CREATE TABLE authors (
13+
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
14+
name VARCHAR(255) NOT NULL
15+
) Engine=InnoDB DEFAULT CHARSET=utf8mb4;
16+
17+
CREATE TABLE books (
18+
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
19+
title VARCHAR(255) NOT NULL,
20+
author_id BIGINT UNSIGNED NOT NULL,
21+
price DECIMAL(10, 2) NOT NULL,
22+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
23+
) Engine=InnoDB DEFAULT CHARSET=utf8mb4;`,
24+
desired: `CREATE TABLE authors (
25+
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
26+
name VARCHAR(255) NOT NULL
27+
) Engine=InnoDB DEFAULT CHARSET=utf8mb4;
28+
29+
CREATE TABLE books (
30+
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
31+
title VARCHAR(255) NOT NULL,
32+
author_id BIGINT UNSIGNED NOT NULL,
33+
price DECIMAL(10, 2) NOT NULL,
34+
stock INT NOT NULL DEFAULT 0,
35+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
36+
CONSTRAINT chk_price CHECK (price > 0),
37+
CONSTRAINT chk_stock CHECK (stock >= 0),
38+
INDEX idx_author (author_id),
39+
INDEX idx_price (price)
40+
) Engine=InnoDB DEFAULT CHARSET=utf8mb4;`,
41+
},
42+
postgres: {
43+
current: `CREATE TABLE authors (
44+
id BIGSERIAL PRIMARY KEY,
45+
name VARCHAR(255) NOT NULL
46+
);
47+
48+
CREATE TABLE books (
49+
id BIGSERIAL PRIMARY KEY,
50+
title VARCHAR(255) NOT NULL,
51+
author_id BIGINT NOT NULL,
52+
price DECIMAL(10, 2) NOT NULL,
53+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
54+
);`,
55+
desired: `CREATE TABLE authors (
56+
id BIGSERIAL PRIMARY KEY,
57+
name VARCHAR(255) NOT NULL
58+
);
59+
60+
CREATE TABLE books (
61+
id BIGSERIAL PRIMARY KEY,
62+
title VARCHAR(255) NOT NULL,
63+
author_id BIGINT NOT NULL,
64+
price DECIMAL(10, 2) NOT NULL,
65+
stock INT NOT NULL DEFAULT 0,
66+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
67+
CONSTRAINT chk_price CHECK (price > 0),
68+
CONSTRAINT chk_stock CHECK (stock >= 0)
69+
);
70+
71+
CREATE INDEX idx_books_author ON books(author_id);
72+
CREATE INDEX idx_books_price ON books(price);`,
73+
},
74+
sqlite3: {
75+
current: `CREATE TABLE authors (
76+
id INTEGER PRIMARY KEY AUTOINCREMENT,
77+
name TEXT NOT NULL
78+
);
79+
80+
CREATE TABLE books (
81+
id INTEGER PRIMARY KEY AUTOINCREMENT,
82+
title TEXT NOT NULL,
83+
author_id INTEGER NOT NULL,
84+
price REAL NOT NULL,
85+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
86+
);`,
87+
desired: `CREATE TABLE authors (
88+
id INTEGER PRIMARY KEY AUTOINCREMENT,
89+
name TEXT NOT NULL
90+
);
91+
92+
CREATE TABLE books (
93+
id INTEGER PRIMARY KEY AUTOINCREMENT,
94+
title TEXT NOT NULL,
95+
author_id INTEGER NOT NULL,
96+
price REAL NOT NULL,
97+
stock INTEGER NOT NULL DEFAULT 0,
98+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
99+
CONSTRAINT chk_price CHECK (price > 0),
100+
CONSTRAINT chk_stock CHECK (stock >= 0)
101+
);
102+
103+
CREATE INDEX idx_books_author ON books(author_id);
104+
CREATE INDEX idx_books_price ON books(price);`,
105+
},
106+
mssql: {
107+
current: `CREATE TABLE authors (
108+
id BIGINT IDENTITY(1,1) PRIMARY KEY,
109+
name NVARCHAR(255) NOT NULL
110+
);
111+
112+
CREATE TABLE books (
113+
id BIGINT IDENTITY(1,1) PRIMARY KEY,
114+
title NVARCHAR(255) NOT NULL,
115+
author_id BIGINT NOT NULL,
116+
price DECIMAL(10, 2) NOT NULL,
117+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id)
118+
);`,
119+
desired: `CREATE TABLE authors (
120+
id BIGINT IDENTITY(1,1) PRIMARY KEY,
121+
name NVARCHAR(255) NOT NULL
122+
);
123+
124+
CREATE TABLE books (
125+
id BIGINT IDENTITY(1,1) PRIMARY KEY,
126+
title NVARCHAR(255) NOT NULL,
127+
author_id BIGINT NOT NULL,
128+
price DECIMAL(10, 2) NOT NULL,
129+
stock INT NOT NULL DEFAULT 0,
130+
CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors(id),
131+
CONSTRAINT chk_price CHECK (price > 0),
132+
CONSTRAINT chk_stock CHECK (stock >= 0)
133+
);
134+
135+
CREATE INDEX idx_books_author ON books(author_id);
136+
CREATE INDEX idx_books_price ON books(price);`,
137+
},
138+
};

0 commit comments

Comments
 (0)