@dbml/cli 2.3.1 → 2.4.2

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 +2025 -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 +121 -0
  76. package/__test__/sql2dbml/multiple_schema_mssql/expect-out-files/multiple_schema.out.dbml +106 -0
  77. package/__test__/sql2dbml/multiple_schema_mssql/in-files/multiple_schema.in.sql +100 -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 +106 -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 +93 -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 +93 -0
  86. package/__test__/sql2dbml/multiple_schema_mysql/stdout.txt +1 -0
  87. package/__test__/sql2dbml/multiple_schema_pg/dbml-error.log +131 -0
  88. package/__test__/sql2dbml/multiple_schema_pg/expect-out-files/multiple_schema.out.dbml +70 -0
  89. package/__test__/sql2dbml/multiple_schema_pg/in-files/multiple_schema.in.sql +77 -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 +70 -0
  92. package/__test__/sql2dbml/multiple_schema_pg/stdout.txt +1 -0
  93. package/__test__/sql2dbml/syntax-error/dbml-error.log +1998 -0
  94. package/bin/dbml2sql.js +0 -0
  95. package/bin/sql2dbml.js +0 -0
  96. package/dbml-error.log +1142 -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,100 @@
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
+ [created_at] varchar(255),
40
+ [lid] int FOREIGN KEY REFERENCES [schemaA].[locations]([id]),
41
+ [lid2] int,
42
+ CONSTRAINT FK_1
43
+ FOREIGN KEY (lid2)
44
+ REFERENCES schemaA.locations (id),
45
+ INDEX [unique_lid_lid2] UNIQUE CLUSTERED ([lid],[lid2])
46
+ )
47
+ GO
48
+
49
+ CREATE TABLE [schemaA].[locations] (
50
+ [id] int PRIMARY KEY,
51
+ [name] nvarchar(255)
52
+
53
+ )
54
+
55
+ ALTER TABLE [ecommerce].[users] ADD FOREIGN KEY ([id]) REFERENCES [users] ([id])
56
+ GO
57
+
58
+ ALTER TABLE [ecommerce].[users] ADD CONSTRAINT [name_optional] FOREIGN KEY ([id]) REFERENCES [users] ([name])
59
+ GO
60
+
61
+ ALTER TABLE [schemaA].[products] ADD FOREIGN KEY ([name]) REFERENCES [ecommerce].[users] ([id])
62
+ GO
63
+
64
+ ALTER TABLE [schemaA].[locations] ADD FOREIGN KEY ([name]) REFERENCES [users] ([id])
65
+ GO
66
+
67
+ CREATE INDEX [idx_1] ON [ecommerce].[users] ("name", "ejs")
68
+ GO
69
+
70
+ ALTER TABLE [schemaA].[products] ADD DEFAULT now() FOR [created_at] WITH VALUES
71
+ GO
72
+
73
+ EXEC sp_addextendedproperty
74
+ @name = N'Table_Description',
75
+ @value = 'This is a note in table "schemaA"."locations"',
76
+ @level0type = N'Schema', @level0name = 'schemaA',
77
+ @level1type = N'Table', @level1name = 'locations';
78
+ GO
79
+
80
+ EXEC sp_addextendedproperty
81
+ @name = N'Column_Description',
82
+ @value = 'Product name',
83
+ @level0type = N'Schema', @level0name = 'dbo',
84
+ @level1type = N'Table', @level1name = 'products',
85
+ @level2type = N'Column', @level2name = 'name';
86
+ GO
87
+
88
+ EXEC sp_addextendedproperty
89
+ @name = N'Table_Description',
90
+ @value = 'Note on table users of schema ecommerce',
91
+ @level0type = N'Schema', @level0name = 'ecommerce',
92
+ @level1type = N'Table', @level1name = 'users';
93
+ GO
94
+
95
+ EXEC sp_addextendedproperty
96
+ @name = N'Table_Description',
97
+ @value = 'Note on table products of schemaA',
98
+ @level0type = N'Schema', @level0name = 'schemaA',
99
+ @level1type = N'Table', @level1name = 'products';
100
+ GO
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/multiple_schema.in.sql",
4
+ "--mssql",
5
+ "-o",
6
+ "./out-files/multiple_schema.out.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,106 @@
1
+ Enum "users_pjs_enum" {
2
+ "created2"
3
+ "running2"
4
+ "done2"
5
+ "failure2"
6
+ }
7
+
8
+ Enum "users_pjs2_enum" {
9
+ "created2"
10
+ "running2"
11
+ "done2"
12
+ "failure2"
13
+ }
14
+
15
+ Enum "users_pg_enum" {
16
+ "male"
17
+ "female"
18
+ }
19
+
20
+ Enum "users_pg2_enum" {
21
+ "male2"
22
+ "female2"
23
+ }
24
+
25
+ Enum "ecommerce_users_ejs_enum" {
26
+ "created2"
27
+ "running2"
28
+ "done2"
29
+ "failure2"
30
+ }
31
+
32
+ Enum "ecommerce_users_ejs2_enum" {
33
+ "created2"
34
+ "running2"
35
+ "done2"
36
+ "failure2"
37
+ }
38
+
39
+ Enum "ecommerce_users_eg_enum" {
40
+ "male"
41
+ "female"
42
+ }
43
+
44
+ Enum "ecommerce_users_eg2_enum" {
45
+ "male2"
46
+ "female2"
47
+ }
48
+
49
+ Table "users" {
50
+ "id" int [pk]
51
+ "name" nvarchar(255)
52
+ "pjs" users_pjs_enum [not null]
53
+ "pjs2" users_pjs2_enum [not null]
54
+ "pg" users_pg_enum [not null]
55
+ "pg2" users_pg2_enum [not null]
56
+ }
57
+
58
+ Table "products" {
59
+ "id" int [pk]
60
+ "name" nvarchar(255) [note: 'Product name']
61
+ }
62
+
63
+ Ref:"schemaA"."locations"."id" < "schemaA"."products"."lid"
64
+
65
+ Ref "FK_1":"schemaA"."locations"."id" < "schemaA"."products"."lid2"
66
+
67
+ Ref:"users"."id" < "ecommerce"."users"."id"
68
+
69
+ Ref "name_optional":"users"."name" < "ecommerce"."users"."id"
70
+
71
+ Ref:"ecommerce"."users"."id" < "schemaA"."products"."name"
72
+
73
+ Ref:"users"."id" < "schemaA"."locations"."name"
74
+
75
+ Table "ecommerce"."users" {
76
+ "id" int [pk]
77
+ "name" nvarchar(255)
78
+ "ejs" ecommerce_users_ejs_enum [not null]
79
+ "ejs2" ecommerce_users_ejs2_enum [not null]
80
+ "eg" ecommerce_users_eg_enum [not null]
81
+ "eg2" ecommerce_users_eg2_enum [not null]
82
+
83
+ Indexes {
84
+ (name, ejs) [name: "idx_1"]
85
+ }
86
+ Note: 'Note on table users of schema ecommerce'
87
+ }
88
+
89
+ Table "schemaA"."products" {
90
+ "id" int [pk]
91
+ "name" nvarchar(255)
92
+ "created_at" varchar(255) [default: `now()`]
93
+ "lid" int
94
+ "lid2" int
95
+
96
+ Indexes {
97
+ (lid, lid2) [unique, name: "unique_lid_lid2"]
98
+ }
99
+ Note: 'Note on table products of schemaA'
100
+ }
101
+
102
+ Table "schemaA"."locations" {
103
+ "id" int [pk]
104
+ "name" nvarchar(255)
105
+ Note: 'This is a note in table "schemaA"."locations"'
106
+ }
@@ -0,0 +1 @@
1
+ ✔ Generated DBML file from SQL file (SQL Server): multiple_schema.out.dbml
@@ -0,0 +1,104 @@
1
+ 2021-07-13T12:38:03.040Z
2
+ TypeError: Cannot read property 'tick' of undefined
3
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:31:56)
4
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:34:3)
5
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_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:37.527Z
14
+ TypeError: Cannot read property 'tick' of undefined
15
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:31:49)
16
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:34:3)
17
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_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
+
25
+ 2022-02-22T10:50:34.012Z
26
+ Error: ENOENT: no such file or directory, stat 'C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml\multiple_schema_pg\in-files\multiple_schema.in.sql'
27
+ at Proxy.statSync (fs.js:932:3)
28
+ at validateFilePlugin (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\validatePlugins\validatePlugins.js:4:19)
29
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:13:33
30
+ at Array.every (<anonymous>)
31
+ at validateInputFilePaths (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:13:16)
32
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:20:5)
33
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:35:3)
34
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_bin.js:5:1)
35
+ at Module._compile (internal/modules/cjs/loader.js:1158:30)
36
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
37
+
38
+ 2022-02-22T10:52:21.941Z
39
+ Error: ENOENT: no such file or directory, stat 'C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml\multiple_schema_pg\in-files\multiple_schema.in.sql'
40
+ at Proxy.statSync (fs.js:932:3)
41
+ at validateFilePlugin (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\validatePlugins\validatePlugins.js:4:19)
42
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:13:33
43
+ at Array.every (<anonymous>)
44
+ at validateInputFilePaths (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:13:16)
45
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:20:5)
46
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:35:3)
47
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_bin.js:5:1)
48
+ at Module._compile (internal/modules/cjs/loader.js:1158:30)
49
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
50
+
51
+ 2022-02-22T10:55:55.159Z
52
+ SyntaxError: You have a syntax error at "multiple_schema.in.sql" line 19 column 22. Expected space but "." found.
53
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:42:13
54
+ at Array.forEach (<anonymous>)
55
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
56
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
57
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:35:3)
58
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_bin.js:5:1)
59
+ at Module._compile (internal/modules/cjs/loader.js:1158:30)
60
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
61
+ at Module.load (internal/modules/cjs/loader.js:1002:32)
62
+ at Function.Module._load (internal/modules/cjs/loader.js:901:14)
63
+
64
+ ROOT_ERROR:
65
+ SyntaxError: Expected space but "." found.
66
+ at peg$buildStructuredError (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:34:6718)
67
+ at Object.peg$parse [as parse] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:42:339)
68
+ at Function.parsePostgresToJSON (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:49:41)
69
+ at Function.parse (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:77:32)
70
+ at Object._import [as import] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\import\index.js:15:37)
71
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:52
72
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:39:23
73
+ at Array.forEach (<anonymous>)
74
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
75
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
76
+ {"start":{"offset":250,"line":19,"column":22},"end":{"offset":251,"line":19,"column":23}}
77
+
78
+ 2022-02-22T10:57:22.482Z
79
+ SyntaxError: You have a syntax error at "multiple_schema.in.sql" line 19 column 22. Expected space but "." found.
80
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:42:13
81
+ at Array.forEach (<anonymous>)
82
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
83
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
84
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:35:3)
85
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_bin.js:5:1)
86
+ at Module._compile (internal/modules/cjs/loader.js:1158:30)
87
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
88
+ at Module.load (internal/modules/cjs/loader.js:1002:32)
89
+ at Function.Module._load (internal/modules/cjs/loader.js:901:14)
90
+
91
+ ROOT_ERROR:
92
+ SyntaxError: Expected space but "." found.
93
+ at peg$buildStructuredError (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:34:6718)
94
+ at Object.peg$parse [as parse] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:42:339)
95
+ at Function.parsePostgresToJSON (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:49:41)
96
+ at Function.parse (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:77:32)
97
+ at Object._import [as import] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\import\index.js:15:37)
98
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:52
99
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:39:23
100
+ at Array.forEach (<anonymous>)
101
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
102
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
103
+ {"start":{"offset":250,"line":19,"column":22},"end":{"offset":251,"line":19,"column":23}}
104
+
@@ -0,0 +1,93 @@
1
+ Enum "users_pjs_enum" {
2
+ "created2"
3
+ "running2"
4
+ "done2"
5
+ "failure2"
6
+ }
7
+
8
+ Enum "users_pjs2_enum" {
9
+ "created2"
10
+ "running2"
11
+ "done2"
12
+ "failure2"
13
+ }
14
+
15
+ Enum "users_pg_enum" {
16
+ "male"
17
+ "female"
18
+ }
19
+
20
+ Enum "users_pg2_enum" {
21
+ "male2"
22
+ "female2"
23
+ }
24
+
25
+ Enum "ecommerce_users_ejs_enum" {
26
+ "created2"
27
+ "running2"
28
+ "done2"
29
+ "failure2"
30
+ }
31
+
32
+ Enum "ecommerce_users_ejs2_enum" {
33
+ "created2"
34
+ "running2"
35
+ "done2"
36
+ "failure2"
37
+ }
38
+
39
+ Enum "ecommerce_users_eg_enum" {
40
+ "male"
41
+ "female"
42
+ }
43
+
44
+ Enum "ecommerce_users_eg2_enum" {
45
+ "male2"
46
+ "female2"
47
+ }
48
+
49
+ Table "users" {
50
+ "id" int [pk]
51
+ "name" varchar(255)
52
+ "pjs" users_pjs_enum
53
+ "pjs2" users_pjs2_enum
54
+ "pg" users_pg_enum
55
+ "pg2" users_pg2_enum
56
+ }
57
+
58
+ Table "products" {
59
+ "id" int [pk]
60
+ "name" varchar(255) [note: 'Product name']
61
+ Note: 'Notes about products table'
62
+ }
63
+
64
+ Ref "FK_1":"schemaA"."locations"."id" < "schemaA"."products"."lid" [delete: cascade]
65
+
66
+ Ref:"users"."id" < "ecommerce"."users"."id"
67
+
68
+ Ref:"users"."name" < "ecommerce"."users"."id"
69
+
70
+ Ref:"ecommerce"."users"."id" < "schemaA"."products"."name"
71
+
72
+ Ref:"users"."id" < "schemaA"."locations"."name"
73
+
74
+ Table "ecommerce"."users" {
75
+ "id" int [pk]
76
+ "name" varchar(255)
77
+ "ejs" ecommerce_users_ejs_enum
78
+ "ejs2" ecommerce_users_ejs2_enum
79
+ "eg" ecommerce_users_eg_enum
80
+ "eg2" ecommerce_users_eg2_enum
81
+ Note: 'Table users of schema ecommerce'
82
+ }
83
+
84
+ Table "schemaA"."products" {
85
+ "id" int [pk]
86
+ "name" varchar(255)
87
+ "lid" int
88
+ }
89
+
90
+ Table "schemaA"."locations" {
91
+ "id" int [pk]
92
+ "name" varchar(255)
93
+ }
@@ -0,0 +1,48 @@
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) COMMENT 'Product name'
19
+ ) COMMENT = 'Notes about products table';
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
+ ) COMMENT = 'Table users of schema ecommerce';
29
+
30
+ CREATE TABLE `schemaA`.`products` (
31
+ `id` int PRIMARY KEY,
32
+ `name` varchar(255),
33
+ `lid` int,
34
+ CONSTRAINT `FK_1` FOREIGN KEY (`lid`) REFERENCES `schemaA`.`locations` (`id`) ON DELETE CASCADE
35
+ );
36
+
37
+ CREATE TABLE `schemaA`.`locations` (
38
+ `id` int PRIMARY KEY,
39
+ `name` varchar(255)
40
+ );
41
+
42
+ ALTER TABLE `ecommerce`.`users` ADD FOREIGN KEY (`id`) REFERENCES `users` (`id`);
43
+
44
+ ALTER TABLE `ecommerce`.`users` ADD CONSTRAINT `name_optional` FOREIGN KEY (`id`) REFERENCES `users` (`name`);
45
+
46
+ ALTER TABLE `schemaA`.`products` ADD FOREIGN KEY (`name`) REFERENCES `ecommerce`.`users` (`id`);
47
+
48
+ ALTER TABLE `schemaA`.`locations` ADD FOREIGN KEY (`name`) REFERENCES `users` (`id`);
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/multiple_schema.in.sql",
4
+ "--mysql",
5
+ "-o",
6
+ "./out-files/multiple_schema.out.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,93 @@
1
+ Enum "users_pjs_enum" {
2
+ "created2"
3
+ "running2"
4
+ "done2"
5
+ "failure2"
6
+ }
7
+
8
+ Enum "users_pjs2_enum" {
9
+ "created2"
10
+ "running2"
11
+ "done2"
12
+ "failure2"
13
+ }
14
+
15
+ Enum "users_pg_enum" {
16
+ "male"
17
+ "female"
18
+ }
19
+
20
+ Enum "users_pg2_enum" {
21
+ "male2"
22
+ "female2"
23
+ }
24
+
25
+ Enum "ecommerce_users_ejs_enum" {
26
+ "created2"
27
+ "running2"
28
+ "done2"
29
+ "failure2"
30
+ }
31
+
32
+ Enum "ecommerce_users_ejs2_enum" {
33
+ "created2"
34
+ "running2"
35
+ "done2"
36
+ "failure2"
37
+ }
38
+
39
+ Enum "ecommerce_users_eg_enum" {
40
+ "male"
41
+ "female"
42
+ }
43
+
44
+ Enum "ecommerce_users_eg2_enum" {
45
+ "male2"
46
+ "female2"
47
+ }
48
+
49
+ Table "users" {
50
+ "id" int [pk]
51
+ "name" varchar(255)
52
+ "pjs" users_pjs_enum
53
+ "pjs2" users_pjs2_enum
54
+ "pg" users_pg_enum
55
+ "pg2" users_pg2_enum
56
+ }
57
+
58
+ Table "products" {
59
+ "id" int [pk]
60
+ "name" varchar(255) [note: 'Product name']
61
+ Note: 'Notes about products table'
62
+ }
63
+
64
+ Ref "FK_1":"schemaA"."locations"."id" < "schemaA"."products"."lid" [delete: cascade]
65
+
66
+ Ref:"users"."id" < "ecommerce"."users"."id"
67
+
68
+ Ref:"users"."name" < "ecommerce"."users"."id"
69
+
70
+ Ref:"ecommerce"."users"."id" < "schemaA"."products"."name"
71
+
72
+ Ref:"users"."id" < "schemaA"."locations"."name"
73
+
74
+ Table "ecommerce"."users" {
75
+ "id" int [pk]
76
+ "name" varchar(255)
77
+ "ejs" ecommerce_users_ejs_enum
78
+ "ejs2" ecommerce_users_ejs2_enum
79
+ "eg" ecommerce_users_eg_enum
80
+ "eg2" ecommerce_users_eg2_enum
81
+ Note: 'Table users of schema ecommerce'
82
+ }
83
+
84
+ Table "schemaA"."products" {
85
+ "id" int [pk]
86
+ "name" varchar(255)
87
+ "lid" int
88
+ }
89
+
90
+ Table "schemaA"."locations" {
91
+ "id" int [pk]
92
+ "name" varchar(255)
93
+ }
@@ -0,0 +1 @@
1
+ ✔ Generated DBML file from SQL file (MySQL): multiple_schema.out.dbml