@dbml/cli 5.1.0 → 5.2.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 (294) hide show
  1. package/.babelrc +2 -2
  2. package/{__test__ → __tests__}/cli.test.js +3 -4
  3. package/__tests__/db2dbml/mssql/dbml-error.log +11 -0
  4. package/__tests__/db2dbml/mssql/expect-out-files/schema.dbml +226 -0
  5. package/{__test__ → __tests__}/db2dbml/mssql/schema.sql +11 -0
  6. package/__tests__/db2dbml/mysql/dbml-error.log +3 -0
  7. package/__tests__/db2dbml/mysql/expect-out-files/schema.dbml +200 -0
  8. package/{__test__ → __tests__}/db2dbml/mysql/schema.sql +9 -0
  9. package/__tests__/db2dbml/postgres/dbml-error.log +7 -0
  10. package/__tests__/db2dbml/postgres/expect-out-files/schema.dbml +196 -0
  11. package/{__test__ → __tests__}/db2dbml/postgres/schema.sql +10 -0
  12. package/{__test__ → __tests__}/db2dbml_bin.js +0 -1
  13. package/__tests__/dbml2sql/filename --mysql --out-file/dbml-error.log +0 -0
  14. package/__tests__/dbml2sql/filename --mysql --out-file/out-files/schema.sql +65 -0
  15. package/__tests__/dbml2sql/filename --mysql stdout/dbml-error.log +0 -0
  16. package/__tests__/dbml2sql/filename --oracle --out-file/dbml-error.log +0 -0
  17. package/__tests__/dbml2sql/filename --oracle --out-file/out-files/schema.sql +61 -0
  18. package/__tests__/dbml2sql/filename --oracle stdout/dbml-error.log +0 -0
  19. package/__tests__/dbml2sql/filename --out-file/dbml-error.log +0 -0
  20. package/__tests__/dbml2sql/filename --out-file/out-files/schema.sql +77 -0
  21. package/__tests__/dbml2sql/filename --postgres --out-file/dbml-error.log +0 -0
  22. package/__tests__/dbml2sql/filename --postgres --out-file/out-files/schema.sql +77 -0
  23. package/__tests__/dbml2sql/filename --postgres stdout/dbml-error.log +0 -0
  24. package/__tests__/dbml2sql/filename stdout/dbml-error.log +0 -0
  25. package/__tests__/dbml2sql/filenames --mysql --out-file/dbml-error.log +0 -0
  26. package/__tests__/dbml2sql/filenames --mysql --out-file/out-files/schema.sql +172 -0
  27. package/__tests__/dbml2sql/filenames --mysql stdout/dbml-error.log +0 -0
  28. package/__tests__/dbml2sql/filenames --oracle --out-file/dbml-error.log +0 -0
  29. package/__tests__/dbml2sql/filenames --oracle --out-file/out-files/schema.sql +172 -0
  30. package/__tests__/dbml2sql/filenames --oracle stdout/dbml-error.log +0 -0
  31. package/__tests__/dbml2sql/filenames --out-file/dbml-error.log +0 -0
  32. package/__tests__/dbml2sql/filenames --out-file/out-files/schema.sql +172 -0
  33. package/__tests__/dbml2sql/filenames --postgres --out-file/dbml-error.log +0 -0
  34. package/__tests__/dbml2sql/filenames --postgres --out-file/out-files/schema.sql +172 -0
  35. package/__tests__/dbml2sql/filenames --postgres stdout/dbml-error.log +0 -0
  36. package/__tests__/dbml2sql/filenames stdout/dbml-error.log +0 -0
  37. package/__tests__/dbml2sql/multiple_schema_mssql/dbml-error.log +0 -0
  38. package/__tests__/dbml2sql/multiple_schema_mssql/out-files/multiple_schema.out.sql +62 -0
  39. package/__tests__/dbml2sql/multiple_schema_mysql/dbml-error.log +0 -0
  40. package/__tests__/dbml2sql/multiple_schema_mysql/out-files/multiple_schema.out.sql +50 -0
  41. package/__tests__/dbml2sql/multiple_schema_oracle/dbml-error.log +0 -0
  42. package/__tests__/dbml2sql/multiple_schema_oracle/out-files/multiple_schema.out.sql +88 -0
  43. package/__tests__/dbml2sql/multiple_schema_pg/dbml-error.log +0 -0
  44. package/__tests__/dbml2sql/multiple_schema_pg/out-files/multiple_schema.out.sql +67 -0
  45. package/__tests__/dbml2sql/syntax-error/dbml-error.log +9 -0
  46. package/{__test__ → __tests__}/dbml2sql_bin.js +0 -1
  47. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql +6 -0
  48. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json +8 -0
  49. package/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt +4 -0
  50. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql +2 -0
  51. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json +8 -0
  52. package/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt +4 -0
  53. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql +6 -0
  54. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json +8 -0
  55. package/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt +4 -0
  56. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql +5 -0
  57. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json +8 -0
  58. package/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt +4 -0
  59. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql +1 -0
  60. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json +8 -0
  61. package/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt +4 -0
  62. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql +5 -0
  63. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json +8 -0
  64. package/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt +4 -0
  65. package/__tests__/sql2dbml/filename --mssql --out-file/dbml-error.log +0 -0
  66. package/__tests__/sql2dbml/filename --mssql --out-file/out-files/schema.dbml +25 -0
  67. package/__tests__/sql2dbml/filename --mysql --out-file/dbml-error.log +0 -0
  68. package/__tests__/sql2dbml/filename --mysql --out-file/out-files/schema.dbml +74 -0
  69. package/__tests__/sql2dbml/filename --mysql stdout/dbml-error.log +0 -0
  70. package/__tests__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml +83 -0
  71. package/__tests__/sql2dbml/filename --oracle --out-file/in-files/schema.sql +147 -0
  72. package/__tests__/sql2dbml/filename --oracle --out-file/options.json +8 -0
  73. package/__tests__/sql2dbml/filename --oracle --out-file/stdout.txt +1 -0
  74. package/__tests__/sql2dbml/filename --out-file/dbml-error.log +0 -0
  75. package/__tests__/sql2dbml/filename --postgres --out-file/dbml-error.log +0 -0
  76. package/__tests__/sql2dbml/filename --postgres --out-file/expect-out-files/schema.dbml +74 -0
  77. package/__tests__/sql2dbml/filename --postgres --out-file/out-files/schema.dbml +74 -0
  78. package/__tests__/sql2dbml/filename --postgres stdout/dbml-error.log +0 -0
  79. package/__tests__/sql2dbml/filename --snowflake stdout/dbml-error.log +0 -0
  80. package/__tests__/sql2dbml/filename stdout/dbml-error.log +0 -0
  81. package/__tests__/sql2dbml/filenames --mysql --out-file/dbml-error.log +0 -0
  82. package/__tests__/sql2dbml/filenames --mysql --out-file/out-files/schema.dbml +170 -0
  83. package/__tests__/sql2dbml/filenames --mysql stdout/dbml-error.log +0 -0
  84. package/__tests__/sql2dbml/filenames --out-file/dbml-error.log +0 -0
  85. package/__tests__/sql2dbml/filenames --postgres --out-file/dbml-error.log +0 -0
  86. package/__tests__/sql2dbml/filenames --postgres --out-file/expect-out-files/schema.dbml +170 -0
  87. package/__tests__/sql2dbml/filenames --postgres --out-file/out-files/schema.dbml +170 -0
  88. package/__tests__/sql2dbml/filenames --postgres stdout/dbml-error.log +0 -0
  89. package/__tests__/sql2dbml/filenames stdout/dbml-error.log +0 -0
  90. package/__tests__/sql2dbml/multiple_schema_mssql/dbml-error.log +0 -0
  91. package/__tests__/sql2dbml/multiple_schema_mssql/out-files/multiple_schema.out.dbml +58 -0
  92. package/__tests__/sql2dbml/multiple_schema_mysql/dbml-error.log +0 -0
  93. package/__tests__/sql2dbml/multiple_schema_mysql/out-files/multiple_schema.out.dbml +136 -0
  94. package/__tests__/sql2dbml/multiple_schema_pg/dbml-error.log +0 -0
  95. package/__tests__/sql2dbml/multiple_schema_pg/out-files/multiple_schema.out.dbml +101 -0
  96. package/__tests__/sql2dbml/syntax-error/dbml-error.log +9 -0
  97. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mssql/dbml-error.log +9 -0
  98. package/__tests__/sql2dbml/syntax-error-duplicate-endpoints --mysql/dbml-error.log +9 -0
  99. package/{__test__ → __tests__}/sql2dbml_bin.js +0 -1
  100. package/bin/db2dbml.js +0 -1
  101. package/bin/dbml2sql.js +0 -1
  102. package/bin/sql2dbml.js +0 -1
  103. package/eslint.config.ts +96 -0
  104. package/jest.config.ts +13 -0
  105. package/lib/cli/index.js +1 -3
  106. package/lib/cli/utils.js +8 -6
  107. package/lib/helpers/logger.js +0 -2
  108. package/package.json +17 -14
  109. package/src/cli/index.js +1 -1
  110. package/src/cli/utils.js +5 -1
  111. package/src/helpers/logger.js +0 -1
  112. package/tsconfig.json +13 -5
  113. /package/{__test__ → __tests__}/db2dbml/mssql/options.json +0 -0
  114. /package/{__test__/db2dbml/mssql/expect-out-files → __tests__/db2dbml/mssql/out-files}/schema.dbml +0 -0
  115. /package/{__test__ → __tests__}/db2dbml/mssql/stdout.txt +0 -0
  116. /package/{__test__ → __tests__}/db2dbml/mysql/options.json +0 -0
  117. /package/{__test__/db2dbml/mysql/expect-out-files → __tests__/db2dbml/mysql/out-files}/schema.dbml +0 -0
  118. /package/{__test__ → __tests__}/db2dbml/mysql/stdout.txt +0 -0
  119. /package/{__test__ → __tests__}/db2dbml/postgres/options.json +0 -0
  120. /package/{__test__/db2dbml/postgres/expect-out-files → __tests__/db2dbml/postgres/out-files}/schema.dbml +0 -0
  121. /package/{__test__ → __tests__}/db2dbml/postgres/stdout.txt +0 -0
  122. /package/{__test__ → __tests__}/dbml2sql/filename --mysql --out-file/expect-out-files/schema.sql +0 -0
  123. /package/{__test__ → __tests__}/dbml2sql/filename --mysql --out-file/in-files/schema.dbml +0 -0
  124. /package/{__test__ → __tests__}/dbml2sql/filename --mysql --out-file/options.json +0 -0
  125. /package/{__test__ → __tests__}/dbml2sql/filename --mysql --out-file/stdout.txt +0 -0
  126. /package/{__test__ → __tests__}/dbml2sql/filename --mysql stdout/in-files/schema.dbml +0 -0
  127. /package/{__test__ → __tests__}/dbml2sql/filename --mysql stdout/options.json +0 -0
  128. /package/{__test__ → __tests__}/dbml2sql/filename --mysql stdout/stdout.txt +0 -0
  129. /package/{__test__ → __tests__}/dbml2sql/filename --oracle --out-file/expect-out-files/schema.sql +0 -0
  130. /package/{__test__ → __tests__}/dbml2sql/filename --oracle --out-file/in-files/schema.dbml +0 -0
  131. /package/{__test__ → __tests__}/dbml2sql/filename --oracle --out-file/options.json +0 -0
  132. /package/{__test__ → __tests__}/dbml2sql/filename --oracle --out-file/stdout.txt +0 -0
  133. /package/{__test__ → __tests__}/dbml2sql/filename --oracle stdout/in-files/schema.dbml +0 -0
  134. /package/{__test__ → __tests__}/dbml2sql/filename --oracle stdout/options.json +0 -0
  135. /package/{__test__ → __tests__}/dbml2sql/filename --oracle stdout/stdout.txt +0 -0
  136. /package/{__test__ → __tests__}/dbml2sql/filename --out-file/expect-out-files/schema.sql +0 -0
  137. /package/{__test__ → __tests__}/dbml2sql/filename --out-file/in-files/schema.dbml +0 -0
  138. /package/{__test__ → __tests__}/dbml2sql/filename --out-file/options.json +0 -0
  139. /package/{__test__ → __tests__}/dbml2sql/filename --out-file/stdout.txt +0 -0
  140. /package/{__test__ → __tests__}/dbml2sql/filename --postgres --out-file/expect-out-files/schema.sql +0 -0
  141. /package/{__test__ → __tests__}/dbml2sql/filename --postgres --out-file/in-files/schema.dbml +0 -0
  142. /package/{__test__ → __tests__}/dbml2sql/filename --postgres --out-file/options.json +0 -0
  143. /package/{__test__ → __tests__}/dbml2sql/filename --postgres --out-file/stdout.txt +0 -0
  144. /package/{__test__ → __tests__}/dbml2sql/filename --postgres stdout/in-files/schema.dbml +0 -0
  145. /package/{__test__ → __tests__}/dbml2sql/filename --postgres stdout/options.json +0 -0
  146. /package/{__test__ → __tests__}/dbml2sql/filename --postgres stdout/stdout.txt +0 -0
  147. /package/{__test__ → __tests__}/dbml2sql/filename stdout/in-files/schema.dbml +0 -0
  148. /package/{__test__ → __tests__}/dbml2sql/filename stdout/options.json +0 -0
  149. /package/{__test__ → __tests__}/dbml2sql/filename stdout/stdout.txt +0 -0
  150. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/expect-out-files/schema.sql +0 -0
  151. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/in-files/business.dbml +0 -0
  152. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/in-files/customer.dbml +0 -0
  153. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/in-files/inventory.dbml +0 -0
  154. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/options.json +0 -0
  155. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql --out-file/stdout.txt +0 -0
  156. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql stdout/in-files/business.dbml +0 -0
  157. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql stdout/in-files/customer.dbml +0 -0
  158. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql stdout/in-files/inventory.dbml +0 -0
  159. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql stdout/options.json +0 -0
  160. /package/{__test__ → __tests__}/dbml2sql/filenames --mysql stdout/stdout.txt +0 -0
  161. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/expect-out-files/schema.sql +0 -0
  162. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/in-files/business.dbml +0 -0
  163. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/in-files/customer.dbml +0 -0
  164. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/in-files/inventory.dbml +0 -0
  165. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/options.json +0 -0
  166. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle --out-file/stdout.txt +0 -0
  167. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle stdout/in-files/business.dbml +0 -0
  168. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle stdout/in-files/customer.dbml +0 -0
  169. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle stdout/in-files/inventory.dbml +0 -0
  170. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle stdout/options.json +0 -0
  171. /package/{__test__ → __tests__}/dbml2sql/filenames --oracle stdout/stdout.txt +0 -0
  172. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/expect-out-files/schema.sql +0 -0
  173. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/in-files/business.dbml +0 -0
  174. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/in-files/customer.dbml +0 -0
  175. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/in-files/inventory.dbml +0 -0
  176. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/options.json +0 -0
  177. /package/{__test__ → __tests__}/dbml2sql/filenames --out-file/stdout.txt +0 -0
  178. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/expect-out-files/schema.sql +0 -0
  179. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/in-files/business.dbml +0 -0
  180. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/in-files/customer.dbml +0 -0
  181. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/in-files/inventory.dbml +0 -0
  182. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/options.json +0 -0
  183. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres --out-file/stdout.txt +0 -0
  184. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres stdout/in-files/business.dbml +0 -0
  185. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres stdout/in-files/customer.dbml +0 -0
  186. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres stdout/in-files/inventory.dbml +0 -0
  187. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres stdout/options.json +0 -0
  188. /package/{__test__ → __tests__}/dbml2sql/filenames --postgres stdout/stdout.txt +0 -0
  189. /package/{__test__ → __tests__}/dbml2sql/filenames stdout/in-files/business.dbml +0 -0
  190. /package/{__test__ → __tests__}/dbml2sql/filenames stdout/in-files/customer.dbml +0 -0
  191. /package/{__test__ → __tests__}/dbml2sql/filenames stdout/in-files/inventory.dbml +0 -0
  192. /package/{__test__ → __tests__}/dbml2sql/filenames stdout/options.json +0 -0
  193. /package/{__test__ → __tests__}/dbml2sql/filenames stdout/stdout.txt +0 -0
  194. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mssql/expect-out-files/multiple_schema.out.sql +0 -0
  195. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mssql/in-files/multiple_schema.in.dbml +0 -0
  196. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mssql/options.json +0 -0
  197. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mssql/stdout.txt +0 -0
  198. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mysql/expect-out-files/multiple_schema.out.sql +0 -0
  199. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mysql/in-files/multiple_schema.in.dbml +0 -0
  200. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mysql/options.json +0 -0
  201. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_mysql/stdout.txt +0 -0
  202. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_oracle/expect-out-files/multiple_schema.out.sql +0 -0
  203. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_oracle/in-files/multiple_schema.in.dbml +0 -0
  204. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_oracle/options.json +0 -0
  205. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_oracle/stdout.txt +0 -0
  206. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_pg/expect-out-files/multiple_schema.out.sql +0 -0
  207. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_pg/in-files/multiple_schema.in.dbml +0 -0
  208. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_pg/options.json +0 -0
  209. /package/{__test__ → __tests__}/dbml2sql/multiple_schema_pg/stdout.txt +0 -0
  210. /package/{__test__ → __tests__}/dbml2sql/syntax-error/in-files/ecommerce.dbml +0 -0
  211. /package/{__test__ → __tests__}/dbml2sql/syntax-error/options.json +0 -0
  212. /package/{__test__ → __tests__}/dbml2sql/syntax-error/stdout.txt +0 -0
  213. /package/{__test__ → __tests__}/sql2dbml/filename --mssql --out-file/expect-out-files/schema.dbml +0 -0
  214. /package/{__test__ → __tests__}/sql2dbml/filename --mssql --out-file/in-files/schema.sql +0 -0
  215. /package/{__test__ → __tests__}/sql2dbml/filename --mssql --out-file/options.json +0 -0
  216. /package/{__test__ → __tests__}/sql2dbml/filename --mssql --out-file/stdout.txt +0 -0
  217. /package/{__test__ → __tests__}/sql2dbml/filename --mysql --out-file/expect-out-files/schema.dbml +0 -0
  218. /package/{__test__ → __tests__}/sql2dbml/filename --mysql --out-file/in-files/schema.sql +0 -0
  219. /package/{__test__ → __tests__}/sql2dbml/filename --mysql --out-file/options.json +0 -0
  220. /package/{__test__ → __tests__}/sql2dbml/filename --mysql --out-file/stdout.txt +0 -0
  221. /package/{__test__ → __tests__}/sql2dbml/filename --mysql stdout/in-files/schema.sql +0 -0
  222. /package/{__test__ → __tests__}/sql2dbml/filename --mysql stdout/options.json +0 -0
  223. /package/{__test__ → __tests__}/sql2dbml/filename --mysql stdout/stdout.txt +0 -0
  224. /package/{__test__ → __tests__}/sql2dbml/filename --out-file/expect-out-files/schema.dbml +0 -0
  225. /package/{__test__ → __tests__}/sql2dbml/filename --out-file/in-files/schema.sql +0 -0
  226. /package/{__test__ → __tests__}/sql2dbml/filename --out-file/options.json +0 -0
  227. /package/{__test__/sql2dbml/filename --postgres --out-file/expect-out-files → __tests__/sql2dbml/filename --out-file/out-files}/schema.dbml +0 -0
  228. /package/{__test__ → __tests__}/sql2dbml/filename --out-file/stdout.txt +0 -0
  229. /package/{__test__ → __tests__}/sql2dbml/filename --postgres --out-file/in-files/schema.sql +0 -0
  230. /package/{__test__ → __tests__}/sql2dbml/filename --postgres --out-file/options.json +0 -0
  231. /package/{__test__ → __tests__}/sql2dbml/filename --postgres --out-file/stdout.txt +0 -0
  232. /package/{__test__ → __tests__}/sql2dbml/filename --postgres stdout/in-files/schema.sql +0 -0
  233. /package/{__test__ → __tests__}/sql2dbml/filename --postgres stdout/options.json +0 -0
  234. /package/{__test__ → __tests__}/sql2dbml/filename --postgres stdout/stdout.txt +0 -0
  235. /package/{__test__ → __tests__}/sql2dbml/filename --snowflake stdout/in-files/schema.sql +0 -0
  236. /package/{__test__ → __tests__}/sql2dbml/filename --snowflake stdout/options.json +0 -0
  237. /package/{__test__ → __tests__}/sql2dbml/filename --snowflake stdout/stdout.txt +0 -0
  238. /package/{__test__ → __tests__}/sql2dbml/filename stdout/in-files/schema.sql +0 -0
  239. /package/{__test__ → __tests__}/sql2dbml/filename stdout/options.json +0 -0
  240. /package/{__test__ → __tests__}/sql2dbml/filename stdout/stdout.txt +0 -0
  241. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/expect-out-files/schema.dbml +0 -0
  242. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/in-files/business.sql +0 -0
  243. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/in-files/customer.sql +0 -0
  244. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/in-files/inventory.sql +0 -0
  245. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/options.json +0 -0
  246. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql --out-file/stdout.txt +0 -0
  247. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql stdout/in-files/business.sql +0 -0
  248. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql stdout/in-files/customer.sql +0 -0
  249. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql stdout/in-files/inventory.sql +0 -0
  250. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql stdout/options.json +0 -0
  251. /package/{__test__ → __tests__}/sql2dbml/filenames --mysql stdout/stdout.txt +0 -0
  252. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/expect-out-files/schema.dbml +0 -0
  253. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/in-files/business.sql +0 -0
  254. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/in-files/customer.sql +0 -0
  255. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/in-files/inventory.sql +0 -0
  256. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/options.json +0 -0
  257. /package/{__test__/sql2dbml/filenames --postgres --out-file/expect-out-files → __tests__/sql2dbml/filenames --out-file/out-files}/schema.dbml +0 -0
  258. /package/{__test__ → __tests__}/sql2dbml/filenames --out-file/stdout.txt +0 -0
  259. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres --out-file/in-files/business.sql +0 -0
  260. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres --out-file/in-files/customer.sql +0 -0
  261. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres --out-file/in-files/inventory.sql +0 -0
  262. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres --out-file/options.json +0 -0
  263. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres --out-file/stdout.txt +0 -0
  264. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres stdout/in-files/business.sql +0 -0
  265. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres stdout/in-files/customer.sql +0 -0
  266. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres stdout/in-files/inventory.sql +0 -0
  267. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres stdout/options.json +0 -0
  268. /package/{__test__ → __tests__}/sql2dbml/filenames --postgres stdout/stdout.txt +0 -0
  269. /package/{__test__ → __tests__}/sql2dbml/filenames stdout/in-files/business.sql +0 -0
  270. /package/{__test__ → __tests__}/sql2dbml/filenames stdout/in-files/customer.sql +0 -0
  271. /package/{__test__ → __tests__}/sql2dbml/filenames stdout/in-files/inventory.sql +0 -0
  272. /package/{__test__ → __tests__}/sql2dbml/filenames stdout/options.json +0 -0
  273. /package/{__test__ → __tests__}/sql2dbml/filenames stdout/stdout.txt +0 -0
  274. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mssql/expect-out-files/multiple_schema.out.dbml +0 -0
  275. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mssql/in-files/multiple_schema.in.sql +0 -0
  276. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mssql/options.json +0 -0
  277. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mssql/stdout.txt +0 -0
  278. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mysql/expect-out-files/multiple_schema.out.dbml +0 -0
  279. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mysql/in-files/multiple_schema.in.sql +0 -0
  280. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mysql/options.json +0 -0
  281. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_mysql/stdout.txt +0 -0
  282. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_pg/expect-out-files/multiple_schema.out.dbml +0 -0
  283. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_pg/in-files/multiple_schema.in.sql +0 -0
  284. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_pg/options.json +0 -0
  285. /package/{__test__ → __tests__}/sql2dbml/multiple_schema_pg/stdout.txt +0 -0
  286. /package/{__test__ → __tests__}/sql2dbml/syntax-error/in-files/business.sql +0 -0
  287. /package/{__test__ → __tests__}/sql2dbml/syntax-error/options.json +0 -0
  288. /package/{__test__ → __tests__}/sql2dbml/syntax-error/stdout.txt +0 -0
  289. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mssql/in-files/schema.sql +0 -0
  290. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mssql/options.json +0 -0
  291. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mssql/stdout.txt +0 -0
  292. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mysql/in-files/schema.sql +0 -0
  293. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mysql/options.json +0 -0
  294. /package/{__test__ → __tests__}/sql2dbml/syntax-error-duplicate-endpoints --mysql/stdout.txt +0 -0
@@ -0,0 +1,88 @@
1
+ -- SQL dump generated using DBML (dbml.dbdiagram.io)
2
+ -- Database: Oracle
3
+ -- Generated at: 2025-11-17T14:37:44.428Z
4
+
5
+ CREATE USER "C##test01"
6
+ NO AUTHENTICATION
7
+ DEFAULT TABLESPACE system
8
+ TEMPORARY TABLESPACE temp
9
+ QUOTA UNLIMITED ON system;
10
+
11
+ CREATE USER "C##test02"
12
+ NO AUTHENTICATION
13
+ DEFAULT TABLESPACE system
14
+ TEMPORARY TABLESPACE temp
15
+ QUOTA UNLIMITED ON system;
16
+
17
+ CREATE TABLE "users" (
18
+ "id" int PRIMARY KEY
19
+ );
20
+
21
+ CREATE TABLE "products" (
22
+ "id" int PRIMARY KEY,
23
+ "user_id" int NOT NULL
24
+ );
25
+
26
+ CREATE TABLE "C##test02"."users_products" (
27
+ "users_id" int,
28
+ "products_id" int,
29
+ PRIMARY KEY ("users_id", "products_id")
30
+ );
31
+
32
+ CREATE TABLE "users_products" (
33
+ "users_id" int,
34
+ "products_id" int,
35
+ PRIMARY KEY ("users_id", "products_id")
36
+ );
37
+
38
+ CREATE TABLE "C##test01"."users_products" (
39
+ "users_id" int,
40
+ "products_id" int,
41
+ PRIMARY KEY ("users_id", "products_id")
42
+ );
43
+
44
+ CREATE TABLE "C##test01"."users" (
45
+ "id" int PRIMARY KEY
46
+ );
47
+
48
+ CREATE TABLE "C##test01"."products" (
49
+ "id" int PRIMARY KEY,
50
+ "user_id" int NOT NULL
51
+ );
52
+
53
+ CREATE TABLE "C##test02"."users" (
54
+ "id" int PRIMARY KEY
55
+ );
56
+
57
+ CREATE TABLE "C##test02"."products" (
58
+ "id" int PRIMARY KEY,
59
+ "user_id" int NOT NULL
60
+ );
61
+
62
+ GRANT REFERENCES ON "C##test01"."users" TO PUBLIC;
63
+
64
+ GRANT REFERENCES ON "users" TO PUBLIC;
65
+
66
+ GRANT REFERENCES ON "C##test02"."users" TO PUBLIC;
67
+
68
+ GRANT REFERENCES ON "products" TO PUBLIC;
69
+
70
+ GRANT REFERENCES ON "C##test02"."products" TO PUBLIC;
71
+
72
+ ALTER TABLE "products" ADD FOREIGN KEY ("user_id") REFERENCES "C##test01"."users" ("id");
73
+
74
+ ALTER TABLE "C##test01"."products" ADD FOREIGN KEY ("user_id") REFERENCES "users" ("id");
75
+
76
+ ALTER TABLE "C##test01"."products" ADD FOREIGN KEY ("user_id") REFERENCES "C##test01"."users" ("id");
77
+
78
+ ALTER TABLE "C##test02"."users_products" ADD FOREIGN KEY ("users_id") REFERENCES "C##test02"."users" ("id");
79
+
80
+ ALTER TABLE "C##test02"."users_products" ADD FOREIGN KEY ("products_id") REFERENCES "products" ("id");
81
+
82
+ ALTER TABLE "users_products" ADD FOREIGN KEY ("users_id") REFERENCES "users" ("id");
83
+
84
+ ALTER TABLE "users_products" ADD FOREIGN KEY ("products_id") REFERENCES "C##test02"."products" ("id");
85
+
86
+ ALTER TABLE "C##test01"."users_products" ADD FOREIGN KEY ("users_id") REFERENCES "C##test01"."users" ("id");
87
+
88
+ ALTER TABLE "C##test01"."users_products" ADD FOREIGN KEY ("products_id") REFERENCES "C##test02"."products" ("id");
@@ -0,0 +1,67 @@
1
+ -- SQL dump generated using DBML (dbml.dbdiagram.io)
2
+ -- Database: PostgreSQL
3
+ -- Generated at: 2025-11-17T14:37:45.207Z
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 "schemaA"."products" ADD FOREIGN KEY ("name") REFERENCES "ecommerce"."users" ("id");
62
+
63
+ ALTER TABLE "schemaA"."locations" ADD FOREIGN KEY ("name") REFERENCES "users" ("id");
64
+
65
+ ALTER TABLE "ecommerce"."users" ADD FOREIGN KEY ("id") REFERENCES "users" ("id");
66
+
67
+ ALTER TABLE "ecommerce"."users" ADD CONSTRAINT "name_optional" FOREIGN KEY ("id") REFERENCES "users" ("name");
@@ -0,0 +1,9 @@
1
+ 2025-11-17T09:11:54.568Z
2
+ undefined
3
+
4
+ 2025-11-17T09:51:53.546Z
5
+ undefined
6
+
7
+ 2025-11-17T14:37:45.981Z
8
+ undefined
9
+
@@ -1,4 +1,3 @@
1
- // eslint-disable-next-line
2
1
  require = require('esm')(module);
3
2
  const { dbml2sql } = require('../src');
4
3
 
@@ -0,0 +1,6 @@
1
+ CREATE TABLE Users (
2
+ id TEXT PRIMARY KEY
3
+ );
4
+
5
+ ALTER TABLE Users
6
+ ADD CONSTRAINT unq UNIQUE (name);
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 1 column 1. Column "name" do not exist in table "Users"
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,2 @@
1
+ ALTER TABLE Users
2
+ ADD CONSTRAINT unq UNIQUE (id);
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 1 column 13. Table "Users" not found
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,6 @@
1
+ CREATE TABLE Users (
2
+ id TEXT
3
+ );
4
+
5
+ COMMENT ON COLUMN Users.name IS 'fullname';
6
+
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 5 column 19. Column "name" not found in table "Users"
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,5 @@
1
+ CREATE TABLE Users (
2
+ id TEXT
3
+ );
4
+
5
+ COMMENT ON COLUMN Posts.title IS 'title';
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 5 column 19. Table "Posts" not found
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 1 column 28. Table Users not found
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,5 @@
1
+ CREATE TABLE Users (
2
+ id TEXT
3
+ );
4
+
5
+ COMMENT ON TABLE Posts IS 'id';
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ ERROR:
2
+ You have a syntax error at "schema.sql" line 5 column 18. Table "Posts" not found
3
+
4
+ A complete log can be found in:
@@ -0,0 +1,25 @@
1
+ Table "UserMaster" {
2
+ "UserMasterKey" "BIGINT IDENTITY(1,1)" [not null]
3
+ }
4
+
5
+ Table "CodeDef" {
6
+ "CdKey" "BIGINT IDENTITY(1,1)" [not null]
7
+ "Category" NVARCHAR(50) [not null]
8
+ "Description" NVARCHAR(100)
9
+ "Code" NVARCHAR(50) [not null]
10
+ "ParentCdKey" BIGINT
11
+ "UserMasterKeyAddedBy" BIGINT [not null]
12
+ "UserMasterKeyLastEditedBy" BIGINT
13
+ "AddedDtTm" DATETIMEOFFSET(7) [not null]
14
+ "LastEditedDtTm" DATETIMEOFFSET(7)
15
+ "EffectiveFromDtTm" DATETIMEOFFSET(7) [not null]
16
+ "EffectiveThruDtTm" DATETIMEOFFSET(7)
17
+
18
+ Indexes {
19
+ CdKey [pk, name: "PK__CodeDef__4922449ECDD244C3"]
20
+ }
21
+ }
22
+
23
+ Ref "fk__CodeDef__ParentCdKey__CodeDef__CdKey":"CodeDef"."CdKey" < "CodeDef"."ParentCdKey"
24
+
25
+ Ref "fk__CodeDef__UserMasterKeyLastEditedBy__UserMaster_UserMasterKey":"UserMaster"."UserMasterKey" < "CodeDef"."UserMasterKeyLastEditedBy"
@@ -0,0 +1,74 @@
1
+ Enum "orders_status_enum" {
2
+ "created"
3
+ "running"
4
+ "done"
5
+ "failure"
6
+ }
7
+
8
+ Enum "products_status_enum" {
9
+ "Out of Stock"
10
+ "In Stock"
11
+ }
12
+
13
+ Table "orders" {
14
+ "id" int [pk, increment]
15
+ "user_id" int [unique, not null]
16
+ "status" orders_status_enum
17
+ "created_at" varchar(255)
18
+ }
19
+
20
+ Table "order_items" {
21
+ "order_id" int
22
+ "product_id" int
23
+ "quantity" int [default: 1]
24
+ }
25
+
26
+ Table "products" {
27
+ "id" int [pk]
28
+ "name" varchar(255)
29
+ "merchant_id" int [not null]
30
+ "price" int
31
+ "status" products_status_enum
32
+ "created_at" datetime [default: `now()`]
33
+
34
+ Indexes {
35
+ (merchant_id, status) [name: "product_status"]
36
+ id [type: hash, unique, name: "products_index_1"]
37
+ }
38
+ }
39
+
40
+ Table "users" {
41
+ "id" int [pk]
42
+ "full_name" varchar(255)
43
+ "email" varchar(255) [unique]
44
+ "gender" varchar(255)
45
+ "date_of_birth" varchar(255)
46
+ "created_at" varchar(255)
47
+ "country_code" int
48
+ }
49
+
50
+ Table "merchants" {
51
+ "id" int [pk]
52
+ "merchant_name" varchar(255)
53
+ "country_code" int
54
+ "created_at" varchar(255)
55
+ "admin_id" int
56
+ }
57
+
58
+ Table "countries" {
59
+ "code" int [pk]
60
+ "name" varchar(255)
61
+ "continent_name" varchar(255)
62
+ }
63
+
64
+ Ref:"orders"."id" < "order_items"."order_id"
65
+
66
+ Ref:"products"."id" < "order_items"."product_id"
67
+
68
+ Ref:"countries"."code" < "users"."country_code"
69
+
70
+ Ref:"countries"."code" < "merchants"."country_code"
71
+
72
+ Ref:"merchants"."id" < "products"."merchant_id"
73
+
74
+ Ref:"users"."id" < "merchants"."admin_id"
@@ -0,0 +1,83 @@
1
+ Table "departments" {
2
+ "dept_id" NUMBER(10) [pk]
3
+ "dept_name" VARCHAR2(100)
4
+ "location_id" NUMBER(10)
5
+ "manager_id" NUMBER(10)
6
+ }
7
+
8
+ Table "locations" {
9
+ "location_id" NUMBER(10) [pk]
10
+ "city" VARCHAR2(100)
11
+ "country_code" CHAR(2)
12
+ }
13
+
14
+ Table "countries" {
15
+ "country_code" CHAR(2) [pk]
16
+ "country_name" VARCHAR2(100)
17
+ }
18
+
19
+ Table "employees" {
20
+ "emp_id" NUMBER(10) [pk]
21
+ "emp_name" VARCHAR2(100)
22
+ "department_id" NUMBER(10)
23
+ "manager_id" NUMBER(10)
24
+ "hire_date" DATE
25
+ "location_id" NUMBER(10)
26
+ }
27
+
28
+ Table "projects" {
29
+ "project_id" NUMBER(10) [pk]
30
+ "project_name" VARCHAR2(200)
31
+ "dept_id" NUMBER(10)
32
+ "lead_emp_id" NUMBER(10)
33
+ "backup_emp_id" NUMBER(10)
34
+ }
35
+
36
+ Table "assignments" {
37
+ "assignment_id" NUMBER(10) [pk]
38
+ "emp_id" NUMBER(10)
39
+ "project_id" NUMBER(10)
40
+ "start_date" DATE
41
+ }
42
+
43
+ Table "project_tasks" {
44
+ "project_id" NUMBER(10)
45
+ "task_id" NUMBER(10)
46
+ "task_name" VARCHAR2(200)
47
+ "assigned_emp_id" NUMBER(10)
48
+
49
+ Indexes {
50
+ (project_id, task_id) [pk]
51
+ }
52
+ }
53
+
54
+ Table "task_hours" {
55
+ "hour_id" NUMBER(10) [pk]
56
+ "project_id" NUMBER(10)
57
+ "task_id" NUMBER(10)
58
+ "hours_worked" NUMBER(5,2)
59
+ }
60
+
61
+ Ref "fk_emp_dept":"departments"."dept_id" < "employees"."department_id"
62
+
63
+ Ref "fk_dept_location":"locations"."location_id" < "departments"."location_id"
64
+
65
+ Ref "fk_loc_country":"countries"."country_code" < "locations"."country_code"
66
+
67
+ Ref "fk_emp_manager":"employees"."emp_id" < "employees"."manager_id"
68
+
69
+ Ref "fk_dept_manager":"employees"."emp_id" < "departments"."manager_id"
70
+
71
+ Ref:"departments"."dept_id" < "projects"."dept_id"
72
+
73
+ Ref:"employees"."emp_id" < "assignments"."emp_id"
74
+
75
+ Ref:"projects"."project_id" < "assignments"."project_id"
76
+
77
+ Ref "fk_task_hours_project_task":"project_tasks".("project_id", "task_id") < "task_hours".("project_id", "task_id")
78
+
79
+ Ref "fk_proj_lead_emp":"employees"."emp_id" < "projects"."lead_emp_id"
80
+
81
+ Ref "fk_proj_backup_emp":"employees"."emp_id" < "projects"."backup_emp_id"
82
+
83
+ Ref "fk_task_assigned_emp":"employees"."emp_id" < "project_tasks"."assigned_emp_id"
@@ -0,0 +1,147 @@
1
+ -- Oracle SQL ALTER TABLE ADD FOREIGN KEY Constraint Test Cases
2
+ -- Test setup: Create base tables with primary keys
3
+ CREATE TABLE departments (
4
+ dept_id NUMBER(10) PRIMARY KEY,
5
+ dept_name VARCHAR2(100),
6
+ location_id NUMBER(10),
7
+ manager_id NUMBER(10)
8
+ );
9
+
10
+ CREATE TABLE locations (
11
+ location_id NUMBER(10) PRIMARY KEY,
12
+ city VARCHAR2(100),
13
+ country_code CHAR(2)
14
+ );
15
+
16
+ CREATE TABLE countries (
17
+ country_code CHAR(2) PRIMARY KEY,
18
+ country_name VARCHAR2(100)
19
+ );
20
+
21
+ CREATE TABLE employees (
22
+ emp_id NUMBER(10) PRIMARY KEY,
23
+ emp_name VARCHAR2(100),
24
+ department_id NUMBER(10),
25
+ manager_id NUMBER(10),
26
+ hire_date DATE,
27
+ location_id NUMBER(10)
28
+ );
29
+
30
+ CREATE TABLE projects (
31
+ project_id NUMBER(10) PRIMARY KEY,
32
+ project_name VARCHAR2(200),
33
+ dept_id NUMBER(10),
34
+ lead_emp_id NUMBER(10),
35
+ backup_emp_id NUMBER(10)
36
+ );
37
+
38
+ CREATE TABLE assignments (
39
+ assignment_id NUMBER(10) PRIMARY KEY,
40
+ emp_id NUMBER(10),
41
+ project_id NUMBER(10),
42
+ start_date DATE
43
+ );
44
+
45
+ -- Table with composite primary key
46
+ CREATE TABLE project_tasks (
47
+ project_id NUMBER(10),
48
+ task_id NUMBER(10),
49
+ task_name VARCHAR2(200),
50
+ assigned_emp_id NUMBER(10),
51
+ PRIMARY KEY (project_id, task_id)
52
+ );
53
+
54
+ CREATE TABLE task_hours (
55
+ hour_id NUMBER(10) PRIMARY KEY,
56
+ project_id NUMBER(10),
57
+ task_id NUMBER(10),
58
+ hours_worked NUMBER(5,2)
59
+ );
60
+
61
+ -- ============================================
62
+ -- NAMED FOREIGN KEY CONSTRAINTS - BASIC
63
+ -- ============================================
64
+
65
+ -- Simple single-column FK with constraint name
66
+ ALTER TABLE employees
67
+ ADD CONSTRAINT fk_emp_dept
68
+ FOREIGN KEY (department_id)
69
+ REFERENCES departments(dept_id);
70
+
71
+ -- Single-column FK referencing different table
72
+ ALTER TABLE departments
73
+ ADD CONSTRAINT fk_dept_location
74
+ FOREIGN KEY (location_id)
75
+ REFERENCES locations(location_id);
76
+
77
+ -- FK with explicit column name in referenced table
78
+ ALTER TABLE locations
79
+ ADD CONSTRAINT fk_loc_country
80
+ FOREIGN KEY (country_code)
81
+ REFERENCES countries(country_code);
82
+
83
+ -- Self-referencing FK (hierarchical)
84
+ ALTER TABLE employees
85
+ ADD CONSTRAINT fk_emp_manager
86
+ FOREIGN KEY (manager_id)
87
+ REFERENCES employees(emp_id);
88
+
89
+ -- Another self-referencing FK on different table
90
+ ALTER TABLE departments
91
+ ADD CONSTRAINT fk_dept_manager
92
+ FOREIGN KEY (manager_id)
93
+ REFERENCES employees(emp_id);
94
+
95
+ -- ============================================
96
+ -- UNNAMED FOREIGN KEY CONSTRAINTS
97
+ -- ============================================
98
+
99
+ -- FK without explicit constraint name (Oracle auto-generates)
100
+ ALTER TABLE projects
101
+ ADD FOREIGN KEY (dept_id)
102
+ REFERENCES departments(dept_id);
103
+
104
+ -- Another unnamed FK
105
+ ALTER TABLE assignments
106
+ ADD FOREIGN KEY (emp_id)
107
+ REFERENCES employees(emp_id);
108
+
109
+ -- Unnamed FK with different columns
110
+ ALTER TABLE assignments
111
+ ADD FOREIGN KEY (project_id)
112
+ REFERENCES projects(project_id);
113
+
114
+ -- ============================================
115
+ -- COMPOSITE FOREIGN KEYS (Multiple Columns)
116
+ -- ============================================
117
+
118
+ -- Two-column composite FK
119
+ ALTER TABLE task_hours
120
+ ADD CONSTRAINT fk_task_hours_project_task
121
+ FOREIGN KEY (project_id, task_id)
122
+ REFERENCES project_tasks(project_id, task_id);
123
+
124
+ -- ============================================
125
+ -- FOREIGN KEYS WITH ON DELETE ACTIONS
126
+ -- ============================================
127
+
128
+ -- ON DELETE CASCADE - delete child records when parent is deleted
129
+ ALTER TABLE projects
130
+ ADD CONSTRAINT fk_proj_lead_emp
131
+ FOREIGN KEY (lead_emp_id)
132
+ REFERENCES employees(emp_id)
133
+ ON DELETE CASCADE;
134
+
135
+ -- ON DELETE SET NULL - set FK to NULL when parent is deleted
136
+ ALTER TABLE projects
137
+ ADD CONSTRAINT fk_proj_backup_emp
138
+ FOREIGN KEY (backup_emp_id)
139
+ REFERENCES employees(emp_id)
140
+ ON DELETE SET NULL;
141
+
142
+ -- ON DELETE CASCADE with named constraint
143
+ ALTER TABLE project_tasks
144
+ ADD CONSTRAINT fk_task_assigned_emp
145
+ FOREIGN KEY (assigned_emp_id)
146
+ REFERENCES employees(emp_id)
147
+ ON DELETE CASCADE;
@@ -0,0 +1,8 @@
1
+ {
2
+ "args": [
3
+ "./in-files/schema.sql",
4
+ "--oracle",
5
+ "-o",
6
+ "./out-files/schema.dbml"
7
+ ]
8
+ }
@@ -0,0 +1 @@
1
+ ✔ Generated DBML file from SQL file (Oracle): schema.dbml