@dbml/cli 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/__test__/cli.test.js +3 -1
  2. package/__test__/dbml2sql/filename --mysql --out-file/dbml-error.log +36 -0
  3. package/__test__/dbml2sql/filename --mysql --out-file/expect-out-files/schema.sql +4 -4
  4. package/__test__/dbml2sql/filename --mysql --out-file/out-files/schema.sql +65 -0
  5. package/__test__/dbml2sql/filename --mysql stdout/dbml-error.log +0 -0
  6. package/__test__/dbml2sql/filename --mysql stdout/stdout.txt +4 -4
  7. package/__test__/dbml2sql/filename --out-file/dbml-error.log +36 -0
  8. package/__test__/dbml2sql/filename --out-file/expect-out-files/schema.sql +4 -4
  9. package/__test__/dbml2sql/filename --out-file/out-files/schema.sql +77 -0
  10. package/__test__/dbml2sql/filename --postgres --out-file/dbml-error.log +24 -0
  11. package/__test__/dbml2sql/filename --postgres --out-file/expect-out-files/schema.sql +4 -4
  12. package/__test__/dbml2sql/filename --postgres --out-file/out-files/schema.sql +77 -0
  13. package/__test__/dbml2sql/filename --postgres stdout/dbml-error.log +0 -0
  14. package/__test__/dbml2sql/filename --postgres stdout/stdout.txt +4 -4
  15. package/__test__/dbml2sql/filename stdout/dbml-error.log +0 -0
  16. package/__test__/dbml2sql/filename stdout/stdout.txt +4 -4
  17. package/__test__/dbml2sql/filenames --mysql --out-file/dbml-error.log +24 -0
  18. package/__test__/dbml2sql/filenames --mysql --out-file/expect-out-files/schema.sql +2 -2
  19. package/__test__/dbml2sql/filenames --mysql --out-file/out-files/schema.sql +172 -0
  20. package/__test__/dbml2sql/filenames --mysql stdout/dbml-error.log +0 -0
  21. package/__test__/dbml2sql/filenames --mysql stdout/stdout.txt +2 -2
  22. package/__test__/dbml2sql/filenames --out-file/dbml-error.log +24 -0
  23. package/__test__/dbml2sql/filenames --out-file/expect-out-files/schema.sql +2 -2
  24. package/__test__/dbml2sql/filenames --out-file/out-files/schema.sql +172 -0
  25. package/__test__/dbml2sql/filenames --postgres --out-file/dbml-error.log +24 -0
  26. package/__test__/dbml2sql/filenames --postgres --out-file/expect-out-files/schema.sql +2 -2
  27. package/__test__/dbml2sql/filenames --postgres --out-file/out-files/schema.sql +172 -0
  28. package/__test__/dbml2sql/filenames --postgres stdout/dbml-error.log +0 -0
  29. package/__test__/dbml2sql/filenames --postgres stdout/stdout.txt +2 -2
  30. package/__test__/dbml2sql/filenames stdout/dbml-error.log +0 -0
  31. package/__test__/dbml2sql/filenames stdout/stdout.txt +2 -2
  32. package/__test__/dbml2sql/multiple_schema_mssql/dbml-error.log +24 -0
  33. package/__test__/dbml2sql/multiple_schema_mssql/expect-out-files/multiple_schema.out.sql +58 -0
  34. package/__test__/dbml2sql/multiple_schema_mssql/in-files/multiple_schema.in.dbml +62 -0
  35. package/__test__/dbml2sql/multiple_schema_mssql/options.json +8 -0
  36. package/__test__/dbml2sql/multiple_schema_mssql/out-files/multiple_schema.out.sql +62 -0
  37. package/__test__/dbml2sql/multiple_schema_mssql/stdout.txt +1 -0
  38. package/__test__/dbml2sql/multiple_schema_mysql/dbml-error.log +24 -0
  39. package/__test__/dbml2sql/multiple_schema_mysql/expect-out-files/multiple_schema.out.sql +46 -0
  40. package/__test__/dbml2sql/multiple_schema_mysql/in-files/multiple_schema.in.dbml +62 -0
  41. package/__test__/dbml2sql/multiple_schema_mysql/options.json +8 -0
  42. package/__test__/dbml2sql/multiple_schema_mysql/out-files/multiple_schema.out.sql +50 -0
  43. package/__test__/dbml2sql/multiple_schema_mysql/stdout.txt +1 -0
  44. package/__test__/dbml2sql/multiple_schema_pg/dbml-error.log +24 -0
  45. package/__test__/dbml2sql/multiple_schema_pg/expect-out-files/multiple_schema.out.sql +63 -0
  46. package/__test__/dbml2sql/multiple_schema_pg/in-files/multiple_schema.in.dbml +62 -0
  47. package/__test__/dbml2sql/multiple_schema_pg/options.json +8 -0
  48. package/__test__/dbml2sql/multiple_schema_pg/out-files/multiple_schema.out.sql +67 -0
  49. package/__test__/dbml2sql/multiple_schema_pg/stdout.txt +1 -0
  50. package/__test__/dbml2sql/syntax-error/dbml-error.log +1647 -0
  51. package/__test__/sql2dbml/filename --mssql --out-file/dbml-error.log +51 -0
  52. package/__test__/sql2dbml/filename --mssql --out-file/expect-out-files/schema.dbml +25 -0
  53. package/__test__/sql2dbml/filename --mssql --out-file/in-files/schema.sql +20 -0
  54. package/__test__/sql2dbml/filename --mssql --out-file/options.json +8 -0
  55. package/__test__/sql2dbml/filename --mssql --out-file/out-files/schema.dbml +25 -0
  56. package/__test__/sql2dbml/filename --mssql --out-file/stdout.txt +1 -0
  57. package/__test__/sql2dbml/filename --mysql --out-file/dbml-error.log +24 -0
  58. package/__test__/sql2dbml/filename --mysql --out-file/out-files/schema.dbml +74 -0
  59. package/__test__/sql2dbml/filename --mysql stdout/dbml-error.log +0 -0
  60. package/__test__/sql2dbml/filename --out-file/dbml-error.log +24 -0
  61. package/__test__/sql2dbml/filename --out-file/out-files/schema.dbml +74 -0
  62. package/__test__/sql2dbml/filename --postgres --out-file/dbml-error.log +24 -0
  63. package/__test__/sql2dbml/filename --postgres --out-file/out-files/schema.dbml +74 -0
  64. package/__test__/sql2dbml/filename --postgres stdout/dbml-error.log +0 -0
  65. package/__test__/sql2dbml/filename stdout/dbml-error.log +0 -0
  66. package/__test__/sql2dbml/filenames --mysql --out-file/dbml-error.log +24 -0
  67. package/__test__/sql2dbml/filenames --mysql --out-file/out-files/schema.dbml +170 -0
  68. package/__test__/sql2dbml/filenames --mysql stdout/dbml-error.log +0 -0
  69. package/__test__/sql2dbml/filenames --out-file/dbml-error.log +24 -0
  70. package/__test__/sql2dbml/filenames --out-file/out-files/schema.dbml +170 -0
  71. package/__test__/sql2dbml/filenames --postgres --out-file/dbml-error.log +24 -0
  72. package/__test__/sql2dbml/filenames --postgres --out-file/out-files/schema.dbml +170 -0
  73. package/__test__/sql2dbml/filenames --postgres stdout/dbml-error.log +0 -0
  74. package/__test__/sql2dbml/filenames stdout/dbml-error.log +0 -0
  75. package/__test__/sql2dbml/multiple_schema_mssql/dbml-error.log +104 -0
  76. package/__test__/sql2dbml/multiple_schema_mssql/expect-out-files/multiple_schema.out.dbml +103 -0
  77. package/__test__/sql2dbml/multiple_schema_mssql/in-files/multiple_schema.in.sql +71 -0
  78. package/__test__/sql2dbml/multiple_schema_mssql/options.json +8 -0
  79. package/__test__/sql2dbml/multiple_schema_mssql/out-files/multiple_schema.out.dbml +103 -0
  80. package/__test__/sql2dbml/multiple_schema_mssql/stdout.txt +1 -0
  81. package/__test__/sql2dbml/multiple_schema_mysql/dbml-error.log +104 -0
  82. package/__test__/sql2dbml/multiple_schema_mysql/expect-out-files/multiple_schema.out.dbml +91 -0
  83. package/__test__/sql2dbml/multiple_schema_mysql/in-files/multiple_schema.in.sql +48 -0
  84. package/__test__/sql2dbml/multiple_schema_mysql/options.json +8 -0
  85. package/__test__/sql2dbml/multiple_schema_mysql/out-files/multiple_schema.out.dbml +91 -0
  86. package/__test__/sql2dbml/multiple_schema_mysql/stdout.txt +1 -0
  87. package/__test__/sql2dbml/multiple_schema_pg/dbml-error.log +104 -0
  88. package/__test__/sql2dbml/multiple_schema_pg/expect-out-files/multiple_schema.out.dbml +68 -0
  89. package/__test__/sql2dbml/multiple_schema_pg/in-files/multiple_schema.in.sql +71 -0
  90. package/__test__/sql2dbml/multiple_schema_pg/options.json +8 -0
  91. package/__test__/sql2dbml/multiple_schema_pg/out-files/multiple_schema.out.dbml +68 -0
  92. package/__test__/sql2dbml/multiple_schema_pg/stdout.txt +1 -0
  93. package/__test__/sql2dbml/syntax-error/dbml-error.log +1620 -0
  94. package/bin/dbml2sql.js +0 -0
  95. package/bin/sql2dbml.js +0 -0
  96. package/dbml-error.log +980 -0
  97. package/lib/cli/export.js +1 -1
  98. package/lib/cli/import.js +1 -1
  99. package/lib/cli/index.js +1 -1
  100. package/package.json +4 -4
  101. package/src/cli/export.js +1 -1
  102. package/src/cli/import.js +1 -1
  103. package/src/cli/index.js +1 -0
@@ -0,0 +1,58 @@
1
+ CREATE SCHEMA [schemaB]
2
+ GO
3
+
4
+ CREATE SCHEMA [ecommerce]
5
+ GO
6
+
7
+ CREATE SCHEMA [schemaA]
8
+ GO
9
+
10
+ CREATE TABLE [users] (
11
+ [id] int PRIMARY KEY,
12
+ [name] nvarchar(255),
13
+ [pjs] nvarchar(255) NOT NULL CHECK ([pjs] IN ('created2', 'running2', 'done2', 'failure2')),
14
+ [pjs2] nvarchar(255) NOT NULL CHECK ([pjs2] IN ('created2', 'running2', 'done2', 'failure2')),
15
+ [pg] nvarchar(255) NOT NULL CHECK ([pg] IN ('male', 'female')),
16
+ [pg2] nvarchar(255) NOT NULL CHECK ([pg2] IN ('male2', 'female2'))
17
+ )
18
+ GO
19
+
20
+ CREATE TABLE [products] (
21
+ [id] int PRIMARY KEY,
22
+ [name] nvarchar(255)
23
+ )
24
+ GO
25
+
26
+ CREATE TABLE [ecommerce].[users] (
27
+ [id] int PRIMARY KEY,
28
+ [name] nvarchar(255),
29
+ [ejs] nvarchar(255) NOT NULL CHECK ([ejs] IN ('created2', 'running2', 'done2', 'failure2')),
30
+ [ejs2] nvarchar(255) NOT NULL CHECK ([ejs2] IN ('created2', 'running2', 'done2', 'failure2')),
31
+ [eg] nvarchar(255) NOT NULL CHECK ([eg] IN ('male', 'female')),
32
+ [eg2] nvarchar(255) NOT NULL CHECK ([eg2] IN ('male2', 'female2'))
33
+ )
34
+ GO
35
+
36
+ CREATE TABLE [schemaA].[products] (
37
+ [id] int PRIMARY KEY,
38
+ [name] nvarchar(255)
39
+ )
40
+ GO
41
+
42
+ CREATE TABLE [schemaA].[locations] (
43
+ [id] int PRIMARY KEY,
44
+ [name] nvarchar(255)
45
+ )
46
+ GO
47
+
48
+ ALTER TABLE [ecommerce].[users] ADD FOREIGN KEY ([id]) REFERENCES [users] ([id])
49
+ GO
50
+
51
+ ALTER TABLE [ecommerce].[users] ADD CONSTRAINT [name_optional] FOREIGN KEY ([id]) REFERENCES [users] ([name])
52
+ GO
53
+
54
+ ALTER TABLE [schemaA].[products] ADD FOREIGN KEY ([name]) REFERENCES [ecommerce].[users] ([id])
55
+ GO
56
+
57
+ ALTER TABLE [schemaA].[locations] ADD FOREIGN KEY ([name]) REFERENCES [users] ([id])
58
+ GO
@@ -0,0 +1,62 @@
1
+ Table "ecommerce"."users" as EU {
2
+ id int [pk]
3
+ name varchar
4
+ ejs job_status
5
+ ejs2 public.job_status
6
+ eg schemaB.gender
7
+ eg2 gender
8
+ }
9
+
10
+ Table public.users {
11
+ id int [pk]
12
+ name varchar
13
+ pjs job_status
14
+ pjs2 public.job_status
15
+ pg schemaB.gender
16
+ pg2 gender
17
+ }
18
+
19
+ Table products {
20
+ id int [pk]
21
+ name varchar
22
+ }
23
+
24
+ Table schemaA.products as A {
25
+ id int [pk]
26
+ name varchar [ref: > EU.id]
27
+ }
28
+
29
+ Table schemaA.locations {
30
+ id int [pk]
31
+ name varchar [ref: > users.id]
32
+ }
33
+
34
+ Ref: "public".users.id < EU.id
35
+
36
+ Ref name_optional {
37
+ users.name < ecommerce.users.id
38
+ }
39
+
40
+ TableGroup tablegroup_name { // tablegroup is case-insensitive.
41
+ public.products
42
+ users
43
+ ecommerce.users
44
+ A
45
+ }
46
+
47
+ enum job_status {
48
+ created2 [note: 'abcdef']
49
+ running2
50
+ done2
51
+ failure2
52
+ }
53
+
54
+ enum schemaB.gender {
55
+ male
56
+ female
57
+ }
58
+
59
+ enum gender {
60
+ male2
61
+ female2
62
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/multiple_schema.in.dbml",
4
+ "--mssql",
5
+ "-o",
6
+ "./out-files/multiple_schema.out.sql"
7
+ ]
8
+ }
@@ -0,0 +1,62 @@
1
+ -- SQL dump generated using DBML (dbml-lang.org)
2
+ -- Database: SQL Server
3
+ -- Generated at: 2022-03-08T03:40:58.063Z
4
+
5
+ CREATE SCHEMA [schemaB]
6
+ GO
7
+
8
+ CREATE SCHEMA [ecommerce]
9
+ GO
10
+
11
+ CREATE SCHEMA [schemaA]
12
+ GO
13
+
14
+ CREATE TABLE [users] (
15
+ [id] int PRIMARY KEY,
16
+ [name] nvarchar(255),
17
+ [pjs] nvarchar(255) NOT NULL CHECK ([pjs] IN ('created2', 'running2', 'done2', 'failure2')),
18
+ [pjs2] nvarchar(255) NOT NULL CHECK ([pjs2] IN ('created2', 'running2', 'done2', 'failure2')),
19
+ [pg] nvarchar(255) NOT NULL CHECK ([pg] IN ('male', 'female')),
20
+ [pg2] nvarchar(255) NOT NULL CHECK ([pg2] IN ('male2', 'female2'))
21
+ )
22
+ GO
23
+
24
+ CREATE TABLE [products] (
25
+ [id] int PRIMARY KEY,
26
+ [name] nvarchar(255)
27
+ )
28
+ GO
29
+
30
+ CREATE TABLE [ecommerce].[users] (
31
+ [id] int PRIMARY KEY,
32
+ [name] nvarchar(255),
33
+ [ejs] nvarchar(255) NOT NULL CHECK ([ejs] IN ('created2', 'running2', 'done2', 'failure2')),
34
+ [ejs2] nvarchar(255) NOT NULL CHECK ([ejs2] IN ('created2', 'running2', 'done2', 'failure2')),
35
+ [eg] nvarchar(255) NOT NULL CHECK ([eg] IN ('male', 'female')),
36
+ [eg2] nvarchar(255) NOT NULL CHECK ([eg2] IN ('male2', 'female2'))
37
+ )
38
+ GO
39
+
40
+ CREATE TABLE [schemaA].[products] (
41
+ [id] int PRIMARY KEY,
42
+ [name] nvarchar(255)
43
+ )
44
+ GO
45
+
46
+ CREATE TABLE [schemaA].[locations] (
47
+ [id] int PRIMARY KEY,
48
+ [name] nvarchar(255)
49
+ )
50
+ GO
51
+
52
+ ALTER TABLE [ecommerce].[users] ADD FOREIGN KEY ([id]) REFERENCES [users] ([id])
53
+ GO
54
+
55
+ ALTER TABLE [ecommerce].[users] ADD CONSTRAINT [name_optional] FOREIGN KEY ([id]) REFERENCES [users] ([name])
56
+ GO
57
+
58
+ ALTER TABLE [schemaA].[products] ADD FOREIGN KEY ([name]) REFERENCES [ecommerce].[users] ([id])
59
+ GO
60
+
61
+ ALTER TABLE [schemaA].[locations] ADD FOREIGN KEY ([name]) REFERENCES [users] ([id])
62
+ GO
@@ -0,0 +1 @@
1
+ ✔ Generated SQL dump file (SQL Server): multiple_schema.out.sql
@@ -0,0 +1,24 @@
1
+ 2021-07-13T12:37:44.406Z
2
+ TypeError: Cannot read property 'tick' of undefined
3
+ at exportHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\export.js:37:56)
4
+ at dbml2sql (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:19:3)
5
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\dbml2sql_bin.js:5:1)
6
+ at Module._compile (internal/modules/cjs/loader.js:1085:14)
7
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
8
+ at Module.load (internal/modules/cjs/loader.js:950:32)
9
+ at Function.Module._load (internal/modules/cjs/loader.js:790:14)
10
+ at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
11
+ at internal/main/run_main_module.js:17:47
12
+
13
+ 2021-07-13T12:58:23.999Z
14
+ TypeError: Cannot read property 'tick' of undefined
15
+ at exportHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\export.js:37:49)
16
+ at dbml2sql (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:19:3)
17
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\dbml2sql_bin.js:5:1)
18
+ at Module._compile (internal/modules/cjs/loader.js:1085:14)
19
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
20
+ at Module.load (internal/modules/cjs/loader.js:950:32)
21
+ at Function.Module._load (internal/modules/cjs/loader.js:790:14)
22
+ at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
23
+ at internal/main/run_main_module.js:17:47
24
+
@@ -0,0 +1,46 @@
1
+ CREATE SCHEMA `schemaB`;
2
+
3
+ CREATE SCHEMA `ecommerce`;
4
+
5
+ CREATE SCHEMA `schemaA`;
6
+
7
+ CREATE TABLE `users` (
8
+ `id` int PRIMARY KEY,
9
+ `name` varchar(255),
10
+ `pjs` ENUM ('created2', 'running2', 'done2', 'failure2'),
11
+ `pjs2` ENUM ('created2', 'running2', 'done2', 'failure2'),
12
+ `pg` ENUM ('male', 'female'),
13
+ `pg2` ENUM ('male2', 'female2')
14
+ );
15
+
16
+ CREATE TABLE `products` (
17
+ `id` int PRIMARY KEY,
18
+ `name` varchar(255)
19
+ );
20
+
21
+ CREATE TABLE `ecommerce`.`users` (
22
+ `id` int PRIMARY KEY,
23
+ `name` varchar(255),
24
+ `ejs` ENUM ('created2', 'running2', 'done2', 'failure2'),
25
+ `ejs2` ENUM ('created2', 'running2', 'done2', 'failure2'),
26
+ `eg` ENUM ('male', 'female'),
27
+ `eg2` ENUM ('male2', 'female2')
28
+ );
29
+
30
+ CREATE TABLE `schemaA`.`products` (
31
+ `id` int PRIMARY KEY,
32
+ `name` varchar(255)
33
+ );
34
+
35
+ CREATE TABLE `schemaA`.`locations` (
36
+ `id` int PRIMARY KEY,
37
+ `name` varchar(255)
38
+ );
39
+
40
+ ALTER TABLE `ecommerce`.`users` ADD FOREIGN KEY (`id`) REFERENCES `users` (`id`);
41
+
42
+ ALTER TABLE `ecommerce`.`users` ADD CONSTRAINT `name_optional` FOREIGN KEY (`id`) REFERENCES `users` (`name`);
43
+
44
+ ALTER TABLE `schemaA`.`products` ADD FOREIGN KEY (`name`) REFERENCES `ecommerce`.`users` (`id`);
45
+
46
+ ALTER TABLE `schemaA`.`locations` ADD FOREIGN KEY (`name`) REFERENCES `users` (`id`);
@@ -0,0 +1,62 @@
1
+ Table "ecommerce"."users" as EU {
2
+ id int [pk]
3
+ name varchar
4
+ ejs job_status
5
+ ejs2 public.job_status
6
+ eg schemaB.gender
7
+ eg2 gender
8
+ }
9
+
10
+ Table public.users {
11
+ id int [pk]
12
+ name varchar
13
+ pjs job_status
14
+ pjs2 public.job_status
15
+ pg schemaB.gender
16
+ pg2 gender
17
+ }
18
+
19
+ Table products {
20
+ id int [pk]
21
+ name varchar
22
+ }
23
+
24
+ Table schemaA.products as A {
25
+ id int [pk]
26
+ name varchar [ref: > EU.id]
27
+ }
28
+
29
+ Table schemaA.locations {
30
+ id int [pk]
31
+ name varchar [ref: > users.id]
32
+ }
33
+
34
+ Ref: "public".users.id < EU.id
35
+
36
+ Ref name_optional {
37
+ users.name < ecommerce.users.id
38
+ }
39
+
40
+ TableGroup tablegroup_name { // tablegroup is case-insensitive.
41
+ public.products
42
+ users
43
+ ecommerce.users
44
+ A
45
+ }
46
+
47
+ enum job_status {
48
+ created2 [note: 'abcdef']
49
+ running2
50
+ done2
51
+ failure2
52
+ }
53
+
54
+ enum schemaB.gender {
55
+ male
56
+ female
57
+ }
58
+
59
+ enum gender {
60
+ male2
61
+ female2
62
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/multiple_schema.in.dbml",
4
+ "--mysql",
5
+ "-o",
6
+ "./out-files/multiple_schema.out.sql"
7
+ ]
8
+ }
@@ -0,0 +1,50 @@
1
+ -- SQL dump generated using DBML (dbml-lang.org)
2
+ -- Database: MySQL
3
+ -- Generated at: 2022-03-08T03:41:00.226Z
4
+
5
+ CREATE SCHEMA `schemaB`;
6
+
7
+ CREATE SCHEMA `ecommerce`;
8
+
9
+ CREATE SCHEMA `schemaA`;
10
+
11
+ CREATE TABLE `users` (
12
+ `id` int PRIMARY KEY,
13
+ `name` varchar(255),
14
+ `pjs` ENUM ('created2', 'running2', 'done2', 'failure2'),
15
+ `pjs2` ENUM ('created2', 'running2', 'done2', 'failure2'),
16
+ `pg` ENUM ('male', 'female'),
17
+ `pg2` ENUM ('male2', 'female2')
18
+ );
19
+
20
+ CREATE TABLE `products` (
21
+ `id` int PRIMARY KEY,
22
+ `name` varchar(255)
23
+ );
24
+
25
+ CREATE TABLE `ecommerce`.`users` (
26
+ `id` int PRIMARY KEY,
27
+ `name` varchar(255),
28
+ `ejs` ENUM ('created2', 'running2', 'done2', 'failure2'),
29
+ `ejs2` ENUM ('created2', 'running2', 'done2', 'failure2'),
30
+ `eg` ENUM ('male', 'female'),
31
+ `eg2` ENUM ('male2', 'female2')
32
+ );
33
+
34
+ CREATE TABLE `schemaA`.`products` (
35
+ `id` int PRIMARY KEY,
36
+ `name` varchar(255)
37
+ );
38
+
39
+ CREATE TABLE `schemaA`.`locations` (
40
+ `id` int PRIMARY KEY,
41
+ `name` varchar(255)
42
+ );
43
+
44
+ ALTER TABLE `ecommerce`.`users` ADD FOREIGN KEY (`id`) REFERENCES `users` (`id`);
45
+
46
+ ALTER TABLE `ecommerce`.`users` ADD CONSTRAINT `name_optional` FOREIGN KEY (`id`) REFERENCES `users` (`name`);
47
+
48
+ ALTER TABLE `schemaA`.`products` ADD FOREIGN KEY (`name`) REFERENCES `ecommerce`.`users` (`id`);
49
+
50
+ ALTER TABLE `schemaA`.`locations` ADD FOREIGN KEY (`name`) REFERENCES `users` (`id`);
@@ -0,0 +1 @@
1
+ ✔ Generated SQL dump file (MySQL): multiple_schema.out.sql
@@ -0,0 +1,24 @@
1
+ 2021-07-13T12:37:44.406Z
2
+ TypeError: Cannot read property 'tick' of undefined
3
+ at exportHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\export.js:37:56)
4
+ at dbml2sql (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:19:3)
5
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\dbml2sql_bin.js:5:1)
6
+ at Module._compile (internal/modules/cjs/loader.js:1085:14)
7
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
8
+ at Module.load (internal/modules/cjs/loader.js:950:32)
9
+ at Function.Module._load (internal/modules/cjs/loader.js:790:14)
10
+ at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
11
+ at internal/main/run_main_module.js:17:47
12
+
13
+ 2021-07-13T12:58:23.999Z
14
+ TypeError: Cannot read property 'tick' of undefined
15
+ at exportHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\export.js:37:49)
16
+ at dbml2sql (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:19:3)
17
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\dbml2sql_bin.js:5:1)
18
+ at Module._compile (internal/modules/cjs/loader.js:1085:14)
19
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
20
+ at Module.load (internal/modules/cjs/loader.js:950:32)
21
+ at Function.Module._load (internal/modules/cjs/loader.js:790:14)
22
+ at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
23
+ at internal/main/run_main_module.js:17:47
24
+
@@ -0,0 +1,63 @@
1
+ CREATE SCHEMA "schemaB";
2
+
3
+ CREATE SCHEMA "ecommerce";
4
+
5
+ CREATE SCHEMA "schemaA";
6
+
7
+ CREATE TYPE "job_status" AS ENUM (
8
+ 'created2',
9
+ 'running2',
10
+ 'done2',
11
+ 'failure2'
12
+ );
13
+
14
+ CREATE TYPE "gender" AS ENUM (
15
+ 'male2',
16
+ 'female2'
17
+ );
18
+
19
+ CREATE TYPE "schemaB"."gender" AS ENUM (
20
+ 'male',
21
+ 'female'
22
+ );
23
+
24
+ CREATE TABLE "users" (
25
+ "id" int PRIMARY KEY,
26
+ "name" varchar,
27
+ "pjs" job_status,
28
+ "pjs2" job_status,
29
+ "pg" schemaB.gender,
30
+ "pg2" gender
31
+ );
32
+
33
+ CREATE TABLE "products" (
34
+ "id" int PRIMARY KEY,
35
+ "name" varchar
36
+ );
37
+
38
+ CREATE TABLE "ecommerce"."users" (
39
+ "id" int PRIMARY KEY,
40
+ "name" varchar,
41
+ "ejs" job_status,
42
+ "ejs2" job_status,
43
+ "eg" schemaB.gender,
44
+ "eg2" gender
45
+ );
46
+
47
+ CREATE TABLE "schemaA"."products" (
48
+ "id" int PRIMARY KEY,
49
+ "name" varchar
50
+ );
51
+
52
+ CREATE TABLE "schemaA"."locations" (
53
+ "id" int PRIMARY KEY,
54
+ "name" varchar
55
+ );
56
+
57
+ ALTER TABLE "ecommerce"."users" ADD FOREIGN KEY ("id") REFERENCES "users" ("id");
58
+
59
+ ALTER TABLE "ecommerce"."users" ADD CONSTRAINT "name_optional" FOREIGN KEY ("id") REFERENCES "users" ("name");
60
+
61
+ ALTER TABLE "schemaA"."products" ADD FOREIGN KEY ("name") REFERENCES "ecommerce"."users" ("id");
62
+
63
+ ALTER TABLE "schemaA"."locations" ADD FOREIGN KEY ("name") REFERENCES "users" ("id");
@@ -0,0 +1,62 @@
1
+ Table "ecommerce"."users" as EU {
2
+ id int [pk]
3
+ name varchar
4
+ ejs job_status
5
+ ejs2 public.job_status
6
+ eg schemaB.gender
7
+ eg2 gender
8
+ }
9
+
10
+ Table public.users {
11
+ id int [pk]
12
+ name varchar
13
+ pjs job_status
14
+ pjs2 public.job_status
15
+ pg schemaB.gender
16
+ pg2 gender
17
+ }
18
+
19
+ Table products {
20
+ id int [pk]
21
+ name varchar
22
+ }
23
+
24
+ Table schemaA.products as A {
25
+ id int [pk]
26
+ name varchar [ref: > EU.id]
27
+ }
28
+
29
+ Table schemaA.locations {
30
+ id int [pk]
31
+ name varchar [ref: > users.id]
32
+ }
33
+
34
+ Ref: "public".users.id < EU.id
35
+
36
+ Ref name_optional {
37
+ users.name < ecommerce.users.id
38
+ }
39
+
40
+ TableGroup tablegroup_name { // tablegroup is case-insensitive.
41
+ public.products
42
+ users
43
+ ecommerce.users
44
+ A
45
+ }
46
+
47
+ enum job_status {
48
+ created2 [note: 'abcdef']
49
+ running2
50
+ done2
51
+ failure2
52
+ }
53
+
54
+ enum schemaB.gender {
55
+ male
56
+ female
57
+ }
58
+
59
+ enum gender {
60
+ male2
61
+ female2
62
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/multiple_schema.in.dbml",
4
+ "--postgres",
5
+ "-o",
6
+ "./out-files/multiple_schema.out.sql"
7
+ ]
8
+ }
@@ -0,0 +1,67 @@
1
+ -- SQL dump generated using DBML (dbml-lang.org)
2
+ -- Database: PostgreSQL
3
+ -- Generated at: 2022-03-08T03:41:02.682Z
4
+
5
+ CREATE SCHEMA "schemaB";
6
+
7
+ CREATE SCHEMA "ecommerce";
8
+
9
+ CREATE SCHEMA "schemaA";
10
+
11
+ CREATE TYPE "job_status" AS ENUM (
12
+ 'created2',
13
+ 'running2',
14
+ 'done2',
15
+ 'failure2'
16
+ );
17
+
18
+ CREATE TYPE "gender" AS ENUM (
19
+ 'male2',
20
+ 'female2'
21
+ );
22
+
23
+ CREATE TYPE "schemaB"."gender" AS ENUM (
24
+ 'male',
25
+ 'female'
26
+ );
27
+
28
+ CREATE TABLE "users" (
29
+ "id" int PRIMARY KEY,
30
+ "name" varchar,
31
+ "pjs" job_status,
32
+ "pjs2" job_status,
33
+ "pg" schemaB.gender,
34
+ "pg2" gender
35
+ );
36
+
37
+ CREATE TABLE "products" (
38
+ "id" int PRIMARY KEY,
39
+ "name" varchar
40
+ );
41
+
42
+ CREATE TABLE "ecommerce"."users" (
43
+ "id" int PRIMARY KEY,
44
+ "name" varchar,
45
+ "ejs" job_status,
46
+ "ejs2" job_status,
47
+ "eg" schemaB.gender,
48
+ "eg2" gender
49
+ );
50
+
51
+ CREATE TABLE "schemaA"."products" (
52
+ "id" int PRIMARY KEY,
53
+ "name" varchar
54
+ );
55
+
56
+ CREATE TABLE "schemaA"."locations" (
57
+ "id" int PRIMARY KEY,
58
+ "name" varchar
59
+ );
60
+
61
+ ALTER TABLE "ecommerce"."users" ADD FOREIGN KEY ("id") REFERENCES "users" ("id");
62
+
63
+ ALTER TABLE "ecommerce"."users" ADD CONSTRAINT "name_optional" FOREIGN KEY ("id") REFERENCES "users" ("name");
64
+
65
+ ALTER TABLE "schemaA"."products" ADD FOREIGN KEY ("name") REFERENCES "ecommerce"."users" ("id");
66
+
67
+ ALTER TABLE "schemaA"."locations" ADD FOREIGN KEY ("name") REFERENCES "users" ("id");
@@ -0,0 +1 @@
1
+ ✔ Generated SQL dump file (PostgreSQL): multiple_schema.out.sql