@dbml/cli 2.3.0 → 2.4.1

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 (85) 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 +5 -5
  5. package/__test__/dbml2sql/filename --mysql stdout/stdout.txt +4 -4
  6. package/__test__/dbml2sql/filename --out-file/dbml-error.log +36 -0
  7. package/__test__/dbml2sql/filename --out-file/expect-out-files/schema.sql +4 -4
  8. package/__test__/dbml2sql/filename --out-file/out-files/schema.sql +5 -5
  9. package/__test__/dbml2sql/filename --postgres --out-file/dbml-error.log +24 -0
  10. package/__test__/dbml2sql/filename --postgres --out-file/expect-out-files/schema.sql +4 -4
  11. package/__test__/dbml2sql/filename --postgres --out-file/out-files/schema.sql +5 -5
  12. package/__test__/dbml2sql/filename --postgres stdout/stdout.txt +4 -4
  13. package/__test__/dbml2sql/filename stdout/stdout.txt +4 -4
  14. package/__test__/dbml2sql/filenames --mysql --out-file/dbml-error.log +24 -0
  15. package/__test__/dbml2sql/filenames --mysql --out-file/expect-out-files/schema.sql +2 -2
  16. package/__test__/dbml2sql/filenames --mysql --out-file/out-files/schema.sql +3 -3
  17. package/__test__/dbml2sql/filenames --mysql stdout/stdout.txt +2 -2
  18. package/__test__/dbml2sql/filenames --out-file/dbml-error.log +24 -0
  19. package/__test__/dbml2sql/filenames --out-file/expect-out-files/schema.sql +2 -2
  20. package/__test__/dbml2sql/filenames --out-file/out-files/schema.sql +3 -3
  21. package/__test__/dbml2sql/filenames --postgres --out-file/dbml-error.log +24 -0
  22. package/__test__/dbml2sql/filenames --postgres --out-file/expect-out-files/schema.sql +2 -2
  23. package/__test__/dbml2sql/filenames --postgres --out-file/out-files/schema.sql +3 -3
  24. package/__test__/dbml2sql/filenames --postgres stdout/stdout.txt +2 -2
  25. package/__test__/dbml2sql/filenames stdout/stdout.txt +2 -2
  26. package/__test__/dbml2sql/multiple_schema_mssql/dbml-error.log +24 -0
  27. package/__test__/dbml2sql/multiple_schema_mssql/expect-out-files/multiple_schema.out.sql +58 -0
  28. package/__test__/dbml2sql/multiple_schema_mssql/in-files/multiple_schema.in.dbml +62 -0
  29. package/__test__/dbml2sql/multiple_schema_mssql/options.json +8 -0
  30. package/__test__/dbml2sql/multiple_schema_mssql/out-files/multiple_schema.out.sql +62 -0
  31. package/__test__/dbml2sql/multiple_schema_mssql/stdout.txt +1 -0
  32. package/__test__/dbml2sql/multiple_schema_mysql/dbml-error.log +24 -0
  33. package/__test__/dbml2sql/multiple_schema_mysql/expect-out-files/multiple_schema.out.sql +46 -0
  34. package/__test__/dbml2sql/multiple_schema_mysql/in-files/multiple_schema.in.dbml +62 -0
  35. package/__test__/dbml2sql/multiple_schema_mysql/options.json +8 -0
  36. package/__test__/dbml2sql/multiple_schema_mysql/out-files/multiple_schema.out.sql +50 -0
  37. package/__test__/dbml2sql/multiple_schema_mysql/stdout.txt +1 -0
  38. package/__test__/dbml2sql/multiple_schema_pg/dbml-error.log +24 -0
  39. package/__test__/dbml2sql/multiple_schema_pg/expect-out-files/multiple_schema.out.sql +63 -0
  40. package/__test__/dbml2sql/multiple_schema_pg/in-files/multiple_schema.in.dbml +62 -0
  41. package/__test__/dbml2sql/multiple_schema_pg/options.json +8 -0
  42. package/__test__/dbml2sql/multiple_schema_pg/out-files/multiple_schema.out.sql +67 -0
  43. package/__test__/dbml2sql/multiple_schema_pg/stdout.txt +1 -0
  44. package/__test__/dbml2sql/syntax-error/dbml-error.log +1774 -532
  45. package/__test__/sql2dbml/filename --mssql --out-file/dbml-error.log +51 -0
  46. package/__test__/sql2dbml/filename --mssql --out-file/expect-out-files/schema.dbml +25 -0
  47. package/__test__/sql2dbml/filename --mssql --out-file/in-files/schema.sql +20 -0
  48. package/__test__/sql2dbml/filename --mssql --out-file/options.json +8 -0
  49. package/__test__/sql2dbml/filename --mssql --out-file/out-files/schema.dbml +25 -0
  50. package/__test__/sql2dbml/filename --mssql --out-file/stdout.txt +1 -0
  51. package/__test__/sql2dbml/filename --mysql --out-file/dbml-error.log +24 -0
  52. package/__test__/sql2dbml/filename --out-file/dbml-error.log +24 -0
  53. package/__test__/sql2dbml/filename --postgres --out-file/dbml-error.log +24 -0
  54. package/__test__/sql2dbml/filenames --mysql --out-file/dbml-error.log +24 -0
  55. package/__test__/sql2dbml/filenames --out-file/dbml-error.log +24 -0
  56. package/__test__/sql2dbml/filenames --postgres --out-file/dbml-error.log +24 -0
  57. package/__test__/sql2dbml/multiple_schema_mssql/dbml-error.log +121 -0
  58. package/__test__/sql2dbml/multiple_schema_mssql/expect-out-files/multiple_schema.out.dbml +106 -0
  59. package/__test__/sql2dbml/multiple_schema_mssql/in-files/multiple_schema.in.sql +100 -0
  60. package/__test__/sql2dbml/multiple_schema_mssql/options.json +8 -0
  61. package/__test__/sql2dbml/multiple_schema_mssql/out-files/multiple_schema.out.dbml +106 -0
  62. package/__test__/sql2dbml/multiple_schema_mssql/stdout.txt +1 -0
  63. package/__test__/sql2dbml/multiple_schema_mysql/dbml-error.log +104 -0
  64. package/__test__/sql2dbml/multiple_schema_mysql/expect-out-files/multiple_schema.out.dbml +93 -0
  65. package/__test__/sql2dbml/multiple_schema_mysql/in-files/multiple_schema.in.sql +48 -0
  66. package/__test__/sql2dbml/multiple_schema_mysql/options.json +8 -0
  67. package/__test__/sql2dbml/multiple_schema_mysql/out-files/multiple_schema.out.dbml +93 -0
  68. package/__test__/sql2dbml/multiple_schema_mysql/stdout.txt +1 -0
  69. package/__test__/sql2dbml/multiple_schema_pg/dbml-error.log +131 -0
  70. package/__test__/sql2dbml/multiple_schema_pg/expect-out-files/multiple_schema.out.dbml +70 -0
  71. package/__test__/sql2dbml/multiple_schema_pg/in-files/multiple_schema.in.sql +77 -0
  72. package/__test__/sql2dbml/multiple_schema_pg/options.json +8 -0
  73. package/__test__/sql2dbml/multiple_schema_pg/out-files/multiple_schema.out.dbml +70 -0
  74. package/__test__/sql2dbml/multiple_schema_pg/stdout.txt +1 -0
  75. package/__test__/sql2dbml/syntax-error/dbml-error.log +1747 -532
  76. package/bin/dbml2sql.js +0 -0
  77. package/bin/sql2dbml.js +0 -0
  78. package/dbml-error.log +1142 -0
  79. package/lib/cli/export.js +1 -1
  80. package/lib/cli/import.js +1 -1
  81. package/lib/cli/index.js +1 -1
  82. package/package.json +4 -4
  83. package/src/cli/export.js +1 -1
  84. package/src/cli/import.js +1 -1
  85. package/src/cli/index.js +1 -0
@@ -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
@@ -0,0 +1,131 @@
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
+
105
+ 2022-04-26T04:43:58.625Z
106
+ SyntaxError: You have a syntax error at "multiple_schema.in.sql" line 67 column 39. Expected space but "." found.
107
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:42:13
108
+ at Array.forEach (<anonymous>)
109
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
110
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
111
+ at sql2dbml (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\index.js:35:3)
112
+ at Object.<anonymous> (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\__test__\sql2dbml_bin.js:5:1)
113
+ at Module._compile (internal/modules/cjs/loader.js:1158:30)
114
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
115
+ at Module.load (internal/modules/cjs/loader.js:1002:32)
116
+ at Function.Module._load (internal/modules/cjs/loader.js:901:14)
117
+
118
+ ROOT_ERROR:
119
+ SyntaxError: Expected space but "." found.
120
+ at peg$buildStructuredError (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:34:6718)
121
+ at Object.peg$parse [as parse] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\postgresParser.js:43:472)
122
+ at Function.parsePostgresToJSON (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:49:41)
123
+ at Function.parse (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\parse\Parser.js:77:32)
124
+ at Object._import [as import] (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\node_modules\@dbml\core\lib\import\index.js:15:37)
125
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:52
126
+ at C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:39:23
127
+ at Array.forEach (<anonymous>)
128
+ at generate (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\utils.js:36:14)
129
+ at importHandler (C:\Users\Inspiron101\Desktop\Holistics\dbml\packages\dbml-cli\src\cli\import.js:28:7)
130
+ {"start":{"offset":1227,"line":67,"column":39},"end":{"offset":1228,"line":67,"column":40}}
131
+
@@ -0,0 +1,70 @@
1
+ Enum "job_status" {
2
+ "created2"
3
+ "running2"
4
+ "done2"
5
+ "failure2"
6
+ }
7
+
8
+ Enum "gender" {
9
+ "male2"
10
+ "female2"
11
+ }
12
+
13
+ Table "users" {
14
+ "id" int [pk]
15
+ "name" varchar
16
+ "pjs" job_status
17
+ "pjs2" job_status
18
+ "pg" schemaB.gender
19
+ "pg2" gender
20
+ Note: 'Sample note on table users'
21
+ }
22
+
23
+ Table "products" {
24
+ "id" int [pk]
25
+ "name" varchar [note: 'Product name of table products in public schema']
26
+
27
+ Indexes {
28
+ id [type: hash, unique]
29
+ }
30
+ }
31
+
32
+ Ref:"schemaA"."locations"."id" < "schemaA"."products"."lid"
33
+
34
+ Ref:"users"."id" < "ecommerce"."users"."id"
35
+
36
+ Ref:"users"."name" < "ecommerce"."users"."id"
37
+
38
+ Ref:"ecommerce"."users"."id" < "schemaA"."products"."name"
39
+
40
+ Ref:"users"."id" < "schemaA"."locations"."name"
41
+
42
+ Enum "schemaB"."gender" {
43
+ "male"
44
+ "female"
45
+ }
46
+
47
+ Table "ecommerce"."users" {
48
+ "id" int [pk]
49
+ "name" varchar
50
+ "ejs" job_status
51
+ "ejs2" job_status
52
+ "eg" schemaB.gender
53
+ "eg2" gender
54
+ }
55
+
56
+ Table "schemaA"."products" {
57
+ "id" int [pk]
58
+ "name" varchar [note: 'Product name of schemaA']
59
+ "lid" int
60
+
61
+ Indexes {
62
+ (id, name) [name: "product_status"]
63
+ }
64
+ }
65
+
66
+ Table "schemaA"."locations" {
67
+ "id" int [pk]
68
+ "name" varchar
69
+ Note: 'This is a note in table "locations"'
70
+ }