@dbml/connector 5.2.0 → 5.3.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 (46) hide show
  1. package/__tests__/connector.test.ts +1 -1
  2. package/__tests__/connectors/mssql/out-files/schema.json +37 -253
  3. package/__tests__/connectors/mysql/expect-out-files/schema.json +1 -1
  4. package/__tests__/connectors/oracle/connection.json +4 -0
  5. package/__tests__/connectors/oracle/expect-out-files/schema.json +3866 -0
  6. package/dist/connectors/{bigqueryConnector.d.ts → bigquery/index.d.ts} +1 -1
  7. package/dist/connectors/{bigqueryConnector.js → bigquery/index.js} +2 -2
  8. package/dist/connectors/connector.js +13 -10
  9. package/dist/connectors/{mssqlConnector.d.ts → mssql/index.d.ts} +1 -1
  10. package/dist/connectors/{mssqlConnector.js → mssql/index.js} +1 -1
  11. package/dist/connectors/{mysqlConnector.d.ts → mysql/index.d.ts} +1 -1
  12. package/dist/connectors/oracle/constraints.d.ts +7 -0
  13. package/dist/connectors/oracle/constraints.js +112 -0
  14. package/dist/connectors/oracle/index.d.ts +3 -0
  15. package/dist/connectors/oracle/index.js +68 -0
  16. package/dist/connectors/oracle/indexes.d.ts +3 -0
  17. package/dist/connectors/oracle/indexes.js +65 -0
  18. package/dist/connectors/oracle/refs.d.ts +3 -0
  19. package/dist/connectors/oracle/refs.js +67 -0
  20. package/dist/connectors/oracle/tables.d.ts +7 -0
  21. package/dist/connectors/oracle/tables.js +280 -0
  22. package/dist/connectors/oracle/utils.d.ts +9 -0
  23. package/dist/connectors/oracle/utils.js +27 -0
  24. package/dist/connectors/{snowflakeConnector.d.ts → postgres/index.d.ts} +1 -1
  25. package/dist/connectors/{postgresConnector.js → postgres/index.js} +1 -1
  26. package/dist/connectors/{postgresConnector.d.ts → snowflake/index.d.ts} +1 -1
  27. package/dist/connectors/{snowflakeConnector.js → snowflake/index.js} +1 -1
  28. package/dist/connectors/types.d.ts +1 -1
  29. package/package.json +5 -3
  30. package/src/connectors/{bigqueryConnector.ts → bigquery/index.ts} +3 -3
  31. package/src/connectors/connector.ts +8 -5
  32. package/src/connectors/{mssqlConnector.ts → mssql/index.ts} +2 -2
  33. package/src/connectors/{mysqlConnector.ts → mysql/index.ts} +1 -1
  34. package/src/connectors/oracle/constraints.ts +113 -0
  35. package/src/connectors/oracle/index.ts +76 -0
  36. package/src/connectors/oracle/indexes.ts +71 -0
  37. package/src/connectors/oracle/refs.ts +73 -0
  38. package/src/connectors/oracle/tables.ts +305 -0
  39. package/src/connectors/oracle/utils.ts +23 -0
  40. package/src/connectors/{postgresConnector.ts → postgres/index.ts} +2 -2
  41. package/src/connectors/{snowflakeConnector.ts → snowflake/index.ts} +2 -2
  42. package/src/connectors/types.ts +1 -0
  43. package/__tests__/connectors/mysql/out-files/schema.json +0 -1430
  44. package/__tests__/connectors/postgres/out-files/schema.json +0 -1719
  45. package/test-output.log +0 -18
  46. /package/dist/connectors/{mysqlConnector.js → mysql/index.js} +0 -0
@@ -1,1719 +0,0 @@
1
- {
2
- "tables": [
3
- {
4
- "name": "table1",
5
- "schemaName": "dbml_test",
6
- "note": {
7
- "value": ""
8
- }
9
- },
10
- {
11
- "name": "table3",
12
- "schemaName": "dbml_test",
13
- "note": {
14
- "value": ""
15
- }
16
- },
17
- {
18
- "name": "users",
19
- "schemaName": "public",
20
- "note": {
21
- "value": ""
22
- }
23
- },
24
- {
25
- "name": "products",
26
- "schemaName": "public",
27
- "note": {
28
- "value": ""
29
- }
30
- },
31
- {
32
- "name": "orders",
33
- "schemaName": "public",
34
- "note": {
35
- "value": ""
36
- }
37
- },
38
- {
39
- "name": "order_items",
40
- "schemaName": "public",
41
- "note": {
42
- "value": ""
43
- }
44
- },
45
- {
46
- "name": "all_string_types",
47
- "schemaName": "public",
48
- "note": {
49
- "value": ""
50
- }
51
- },
52
- {
53
- "name": "all_default_values",
54
- "schemaName": "public",
55
- "note": {
56
- "value": ""
57
- }
58
- },
59
- {
60
- "name": "user_define_data_types",
61
- "schemaName": "public",
62
- "note": {
63
- "value": ""
64
- }
65
- },
66
- {
67
- "name": "table_with_comments",
68
- "schemaName": "public",
69
- "note": {
70
- "value": "This table stores information about various items. Such as: 'id', 'name', 'description'"
71
- }
72
- },
73
- {
74
- "name": "authors",
75
- "schemaName": "public",
76
- "note": {
77
- "value": ""
78
- }
79
- },
80
- {
81
- "name": "books",
82
- "schemaName": "public",
83
- "note": {
84
- "value": ""
85
- }
86
- },
87
- {
88
- "name": "table1",
89
- "schemaName": "public",
90
- "note": {
91
- "value": ""
92
- }
93
- },
94
- {
95
- "name": "table2",
96
- "schemaName": "public",
97
- "note": {
98
- "value": ""
99
- }
100
- }
101
- ],
102
- "fields": {
103
- "dbml_test.table1": [
104
- {
105
- "name": "id",
106
- "type": {
107
- "type_name": "int4",
108
- "schemaName": null
109
- },
110
- "dbdefault": null,
111
- "not_null": true,
112
- "increment": true,
113
- "note": {
114
- "value": ""
115
- }
116
- },
117
- {
118
- "name": "status",
119
- "type": {
120
- "type_name": "enum_type1",
121
- "schemaName": "dbml_test"
122
- },
123
- "dbdefault": null,
124
- "not_null": false,
125
- "increment": false,
126
- "note": {
127
- "value": ""
128
- }
129
- }
130
- ],
131
- "dbml_test.table3": [
132
- {
133
- "name": "id",
134
- "type": {
135
- "type_name": "int4",
136
- "schemaName": null
137
- },
138
- "dbdefault": null,
139
- "not_null": true,
140
- "increment": true,
141
- "note": {
142
- "value": ""
143
- }
144
- },
145
- {
146
- "name": "status",
147
- "type": {
148
- "type_name": "enum_type3",
149
- "schemaName": "dbml_test"
150
- },
151
- "dbdefault": null,
152
- "not_null": false,
153
- "increment": false,
154
- "note": {
155
- "value": ""
156
- }
157
- }
158
- ],
159
- "public.users": [
160
- {
161
- "name": "user_id",
162
- "type": {
163
- "type_name": "int4",
164
- "schemaName": null
165
- },
166
- "dbdefault": null,
167
- "not_null": true,
168
- "increment": true,
169
- "note": {
170
- "value": ""
171
- }
172
- },
173
- {
174
- "name": "username",
175
- "type": {
176
- "type_name": "varchar(50)",
177
- "schemaName": null
178
- },
179
- "dbdefault": null,
180
- "not_null": true,
181
- "increment": false,
182
- "note": {
183
- "value": ""
184
- }
185
- },
186
- {
187
- "name": "email",
188
- "type": {
189
- "type_name": "varchar(100)",
190
- "schemaName": null
191
- },
192
- "dbdefault": null,
193
- "not_null": true,
194
- "increment": false,
195
- "note": {
196
- "value": ""
197
- }
198
- },
199
- {
200
- "name": "password_hash",
201
- "type": {
202
- "type_name": "varchar(255)",
203
- "schemaName": null
204
- },
205
- "dbdefault": null,
206
- "not_null": true,
207
- "increment": false,
208
- "note": {
209
- "value": ""
210
- }
211
- },
212
- {
213
- "name": "first_name",
214
- "type": {
215
- "type_name": "varchar(50)",
216
- "schemaName": null
217
- },
218
- "dbdefault": null,
219
- "not_null": false,
220
- "increment": false,
221
- "note": {
222
- "value": ""
223
- }
224
- },
225
- {
226
- "name": "last_name",
227
- "type": {
228
- "type_name": "varchar(50)",
229
- "schemaName": null
230
- },
231
- "dbdefault": null,
232
- "not_null": false,
233
- "increment": false,
234
- "note": {
235
- "value": ""
236
- }
237
- },
238
- {
239
- "name": "full_name",
240
- "type": {
241
- "type_name": "varchar(100)",
242
- "schemaName": null
243
- },
244
- "dbdefault": null,
245
- "not_null": false,
246
- "increment": false,
247
- "note": {
248
- "value": ""
249
- }
250
- },
251
- {
252
- "name": "date_of_birth",
253
- "type": {
254
- "type_name": "date",
255
- "schemaName": null
256
- },
257
- "dbdefault": null,
258
- "not_null": false,
259
- "increment": false,
260
- "note": {
261
- "value": ""
262
- }
263
- },
264
- {
265
- "name": "created_at",
266
- "type": {
267
- "type_name": "timestamptz",
268
- "schemaName": null
269
- },
270
- "dbdefault": {
271
- "type": "expression",
272
- "value": "CURRENT_TIMESTAMP"
273
- },
274
- "not_null": false,
275
- "increment": false,
276
- "note": {
277
- "value": ""
278
- }
279
- },
280
- {
281
- "name": "last_login",
282
- "type": {
283
- "type_name": "timestamptz",
284
- "schemaName": null
285
- },
286
- "dbdefault": null,
287
- "not_null": false,
288
- "increment": false,
289
- "note": {
290
- "value": ""
291
- }
292
- },
293
- {
294
- "name": "is_active",
295
- "type": {
296
- "type_name": "bool",
297
- "schemaName": null
298
- },
299
- "dbdefault": {
300
- "type": "boolean",
301
- "value": "true"
302
- },
303
- "not_null": false,
304
- "increment": false,
305
- "note": {
306
- "value": ""
307
- }
308
- }
309
- ],
310
- "public.products": [
311
- {
312
- "name": "product_id",
313
- "type": {
314
- "type_name": "int4",
315
- "schemaName": null
316
- },
317
- "dbdefault": null,
318
- "not_null": true,
319
- "increment": true,
320
- "note": {
321
- "value": ""
322
- }
323
- },
324
- {
325
- "name": "name",
326
- "type": {
327
- "type_name": "varchar(100)",
328
- "schemaName": null
329
- },
330
- "dbdefault": null,
331
- "not_null": true,
332
- "increment": false,
333
- "note": {
334
- "value": ""
335
- }
336
- },
337
- {
338
- "name": "description",
339
- "type": {
340
- "type_name": "text",
341
- "schemaName": null
342
- },
343
- "dbdefault": null,
344
- "not_null": false,
345
- "increment": false,
346
- "note": {
347
- "value": ""
348
- }
349
- },
350
- {
351
- "name": "price",
352
- "type": {
353
- "type_name": "numeric(10,2)",
354
- "schemaName": null
355
- },
356
- "dbdefault": null,
357
- "not_null": true,
358
- "increment": false,
359
- "note": {
360
- "value": ""
361
- }
362
- },
363
- {
364
- "name": "stock_quantity",
365
- "type": {
366
- "type_name": "int4",
367
- "schemaName": null
368
- },
369
- "dbdefault": {
370
- "type": "number",
371
- "value": "0"
372
- },
373
- "not_null": true,
374
- "increment": false,
375
- "note": {
376
- "value": ""
377
- }
378
- },
379
- {
380
- "name": "category",
381
- "type": {
382
- "type_name": "varchar(50)",
383
- "schemaName": null
384
- },
385
- "dbdefault": null,
386
- "not_null": false,
387
- "increment": false,
388
- "note": {
389
- "value": ""
390
- }
391
- },
392
- {
393
- "name": "created_at",
394
- "type": {
395
- "type_name": "timestamptz",
396
- "schemaName": null
397
- },
398
- "dbdefault": {
399
- "type": "expression",
400
- "value": "CURRENT_TIMESTAMP"
401
- },
402
- "not_null": false,
403
- "increment": false,
404
- "note": {
405
- "value": ""
406
- }
407
- },
408
- {
409
- "name": "updated_at",
410
- "type": {
411
- "type_name": "timestamptz",
412
- "schemaName": null
413
- },
414
- "dbdefault": {
415
- "type": "expression",
416
- "value": "CURRENT_TIMESTAMP"
417
- },
418
- "not_null": false,
419
- "increment": false,
420
- "note": {
421
- "value": ""
422
- }
423
- },
424
- {
425
- "name": "is_available",
426
- "type": {
427
- "type_name": "bool",
428
- "schemaName": null
429
- },
430
- "dbdefault": {
431
- "type": "boolean",
432
- "value": "true"
433
- },
434
- "not_null": false,
435
- "increment": false,
436
- "note": {
437
- "value": ""
438
- }
439
- }
440
- ],
441
- "public.orders": [
442
- {
443
- "name": "order_id",
444
- "type": {
445
- "type_name": "int4",
446
- "schemaName": null
447
- },
448
- "dbdefault": null,
449
- "not_null": true,
450
- "increment": true,
451
- "note": {
452
- "value": ""
453
- }
454
- },
455
- {
456
- "name": "user_id",
457
- "type": {
458
- "type_name": "int4",
459
- "schemaName": null
460
- },
461
- "dbdefault": null,
462
- "not_null": true,
463
- "increment": false,
464
- "note": {
465
- "value": ""
466
- }
467
- },
468
- {
469
- "name": "order_date",
470
- "type": {
471
- "type_name": "timestamptz",
472
- "schemaName": null
473
- },
474
- "dbdefault": {
475
- "type": "expression",
476
- "value": "CURRENT_TIMESTAMP"
477
- },
478
- "not_null": false,
479
- "increment": false,
480
- "note": {
481
- "value": ""
482
- }
483
- },
484
- {
485
- "name": "total_amount",
486
- "type": {
487
- "type_name": "numeric(12,2)",
488
- "schemaName": null
489
- },
490
- "dbdefault": null,
491
- "not_null": true,
492
- "increment": false,
493
- "note": {
494
- "value": ""
495
- }
496
- },
497
- {
498
- "name": "status",
499
- "type": {
500
- "type_name": "varchar(20)",
501
- "schemaName": null
502
- },
503
- "dbdefault": {
504
- "type": "string",
505
- "value": "pending"
506
- },
507
- "not_null": false,
508
- "increment": false,
509
- "note": {
510
- "value": ""
511
- }
512
- },
513
- {
514
- "name": "shipping_address",
515
- "type": {
516
- "type_name": "text",
517
- "schemaName": null
518
- },
519
- "dbdefault": null,
520
- "not_null": true,
521
- "increment": false,
522
- "note": {
523
- "value": ""
524
- }
525
- },
526
- {
527
- "name": "billing_address",
528
- "type": {
529
- "type_name": "text",
530
- "schemaName": null
531
- },
532
- "dbdefault": null,
533
- "not_null": true,
534
- "increment": false,
535
- "note": {
536
- "value": ""
537
- }
538
- }
539
- ],
540
- "public.order_items": [
541
- {
542
- "name": "order_item_id",
543
- "type": {
544
- "type_name": "int4",
545
- "schemaName": null
546
- },
547
- "dbdefault": null,
548
- "not_null": true,
549
- "increment": true,
550
- "note": {
551
- "value": ""
552
- }
553
- },
554
- {
555
- "name": "order_id",
556
- "type": {
557
- "type_name": "int4",
558
- "schemaName": null
559
- },
560
- "dbdefault": null,
561
- "not_null": true,
562
- "increment": false,
563
- "note": {
564
- "value": ""
565
- }
566
- },
567
- {
568
- "name": "product_id",
569
- "type": {
570
- "type_name": "int4",
571
- "schemaName": null
572
- },
573
- "dbdefault": null,
574
- "not_null": true,
575
- "increment": false,
576
- "note": {
577
- "value": ""
578
- }
579
- },
580
- {
581
- "name": "quantity",
582
- "type": {
583
- "type_name": "int4",
584
- "schemaName": null
585
- },
586
- "dbdefault": null,
587
- "not_null": true,
588
- "increment": false,
589
- "note": {
590
- "value": ""
591
- }
592
- },
593
- {
594
- "name": "unit_price",
595
- "type": {
596
- "type_name": "numeric(10,2)",
597
- "schemaName": null
598
- },
599
- "dbdefault": null,
600
- "not_null": true,
601
- "increment": false,
602
- "note": {
603
- "value": ""
604
- }
605
- }
606
- ],
607
- "public.all_string_types": [
608
- {
609
- "name": "text_col",
610
- "type": {
611
- "type_name": "text",
612
- "schemaName": null
613
- },
614
- "dbdefault": {
615
- "type": "string",
616
- "value": "default_text"
617
- },
618
- "not_null": false,
619
- "increment": false,
620
- "note": {
621
- "value": ""
622
- }
623
- },
624
- {
625
- "name": "varchar_col",
626
- "type": {
627
- "type_name": "varchar(100)",
628
- "schemaName": null
629
- },
630
- "dbdefault": {
631
- "type": "string",
632
- "value": "default_varchar"
633
- },
634
- "not_null": false,
635
- "increment": false,
636
- "note": {
637
- "value": ""
638
- }
639
- },
640
- {
641
- "name": "char_col",
642
- "type": {
643
- "type_name": "bpchar(10)",
644
- "schemaName": null
645
- },
646
- "dbdefault": {
647
- "type": "string",
648
- "value": "default_char"
649
- },
650
- "not_null": false,
651
- "increment": false,
652
- "note": {
653
- "value": ""
654
- }
655
- },
656
- {
657
- "name": "character_varying_col",
658
- "type": {
659
- "type_name": "varchar(50)",
660
- "schemaName": null
661
- },
662
- "dbdefault": {
663
- "type": "string",
664
- "value": "default_character_varying"
665
- },
666
- "not_null": false,
667
- "increment": false,
668
- "note": {
669
- "value": ""
670
- }
671
- },
672
- {
673
- "name": "character_col",
674
- "type": {
675
- "type_name": "bpchar(5)",
676
- "schemaName": null
677
- },
678
- "dbdefault": {
679
- "type": "string",
680
- "value": "default_character"
681
- },
682
- "not_null": false,
683
- "increment": false,
684
- "note": {
685
- "value": ""
686
- }
687
- },
688
- {
689
- "name": "name_col",
690
- "type": {
691
- "type_name": "name",
692
- "schemaName": null
693
- },
694
- "dbdefault": {
695
- "type": "string",
696
- "value": "default_name"
697
- },
698
- "not_null": false,
699
- "increment": false,
700
- "note": {
701
- "value": ""
702
- }
703
- },
704
- {
705
- "name": "bpchar_col",
706
- "type": {
707
- "type_name": "bpchar(15)",
708
- "schemaName": null
709
- },
710
- "dbdefault": {
711
- "type": "string",
712
- "value": "default_bpchar"
713
- },
714
- "not_null": false,
715
- "increment": false,
716
- "note": {
717
- "value": ""
718
- }
719
- },
720
- {
721
- "name": "text_array_col",
722
- "type": {
723
- "type_name": "text[]",
724
- "schemaName": null
725
- },
726
- "dbdefault": {
727
- "type": "expression",
728
- "value": "ARRAY['default_text1', 'default_text2']"
729
- },
730
- "not_null": false,
731
- "increment": false,
732
- "note": {
733
- "value": ""
734
- }
735
- },
736
- {
737
- "name": "json_col",
738
- "type": {
739
- "type_name": "json",
740
- "schemaName": null
741
- },
742
- "dbdefault": {
743
- "type": "expression",
744
- "value": "{\"default_key\": \"default_value\"}"
745
- },
746
- "not_null": false,
747
- "increment": false,
748
- "note": {
749
- "value": ""
750
- }
751
- },
752
- {
753
- "name": "jsonb_col",
754
- "type": {
755
- "type_name": "jsonb",
756
- "schemaName": null
757
- },
758
- "dbdefault": {
759
- "type": "expression",
760
- "value": "{\"default_key\": \"default_value\"}"
761
- },
762
- "not_null": false,
763
- "increment": false,
764
- "note": {
765
- "value": ""
766
- }
767
- }
768
- ],
769
- "public.all_default_values": [
770
- {
771
- "name": "id",
772
- "type": {
773
- "type_name": "int4",
774
- "schemaName": null
775
- },
776
- "dbdefault": null,
777
- "not_null": true,
778
- "increment": true,
779
- "note": {
780
- "value": ""
781
- }
782
- },
783
- {
784
- "name": "boolean_col",
785
- "type": {
786
- "type_name": "bool",
787
- "schemaName": null
788
- },
789
- "dbdefault": {
790
- "type": "boolean",
791
- "value": "true"
792
- },
793
- "not_null": false,
794
- "increment": false,
795
- "note": {
796
- "value": ""
797
- }
798
- },
799
- {
800
- "name": "integer_col",
801
- "type": {
802
- "type_name": "int4",
803
- "schemaName": null
804
- },
805
- "dbdefault": {
806
- "type": "number",
807
- "value": "42"
808
- },
809
- "not_null": false,
810
- "increment": false,
811
- "note": {
812
- "value": ""
813
- }
814
- },
815
- {
816
- "name": "numeric_col",
817
- "type": {
818
- "type_name": "numeric(10,2)",
819
- "schemaName": null
820
- },
821
- "dbdefault": {
822
- "type": "number",
823
- "value": "99.99"
824
- },
825
- "not_null": false,
826
- "increment": false,
827
- "note": {
828
- "value": ""
829
- }
830
- },
831
- {
832
- "name": "date_col",
833
- "type": {
834
- "type_name": "date",
835
- "schemaName": null
836
- },
837
- "dbdefault": {
838
- "type": "expression",
839
- "value": "CURRENT_DATE"
840
- },
841
- "not_null": false,
842
- "increment": false,
843
- "note": {
844
- "value": ""
845
- }
846
- },
847
- {
848
- "name": "date_col_specific",
849
- "type": {
850
- "type_name": "date",
851
- "schemaName": null
852
- },
853
- "dbdefault": {
854
- "type": "string",
855
- "value": "2024-01-01"
856
- },
857
- "not_null": false,
858
- "increment": false,
859
- "note": {
860
- "value": ""
861
- }
862
- },
863
- {
864
- "name": "timestamp_col",
865
- "type": {
866
- "type_name": "timestamp",
867
- "schemaName": null
868
- },
869
- "dbdefault": {
870
- "type": "expression",
871
- "value": "CURRENT_TIMESTAMP"
872
- },
873
- "not_null": false,
874
- "increment": false,
875
- "note": {
876
- "value": ""
877
- }
878
- },
879
- {
880
- "name": "timestamp_col_specific",
881
- "type": {
882
- "type_name": "timestamp",
883
- "schemaName": null
884
- },
885
- "dbdefault": {
886
- "type": "string",
887
- "value": "2024-01-01 12:00:00"
888
- },
889
- "not_null": false,
890
- "increment": false,
891
- "note": {
892
- "value": ""
893
- }
894
- },
895
- {
896
- "name": "date_plus_7_days",
897
- "type": {
898
- "type_name": "date",
899
- "schemaName": null
900
- },
901
- "dbdefault": {
902
- "type": "expression",
903
- "value": "(CURRENT_DATE + '7 days'::interval)"
904
- },
905
- "not_null": false,
906
- "increment": false,
907
- "note": {
908
- "value": ""
909
- }
910
- },
911
- {
912
- "name": "date_minus_30_days",
913
- "type": {
914
- "type_name": "date",
915
- "schemaName": null
916
- },
917
- "dbdefault": {
918
- "type": "expression",
919
- "value": "(CURRENT_DATE - '30 days'::interval)"
920
- },
921
- "not_null": false,
922
- "increment": false,
923
- "note": {
924
- "value": ""
925
- }
926
- },
927
- {
928
- "name": "timestamp_plus_1_hour",
929
- "type": {
930
- "type_name": "timestamp",
931
- "schemaName": null
932
- },
933
- "dbdefault": {
934
- "type": "expression",
935
- "value": "(CURRENT_TIMESTAMP + '01:00:00'::interval)"
936
- },
937
- "not_null": false,
938
- "increment": false,
939
- "note": {
940
- "value": ""
941
- }
942
- },
943
- {
944
- "name": "timestamp_minus_15_minutes",
945
- "type": {
946
- "type_name": "timestamp",
947
- "schemaName": null
948
- },
949
- "dbdefault": {
950
- "type": "expression",
951
- "value": "(CURRENT_TIMESTAMP - '00:15:00'::interval)"
952
- },
953
- "not_null": false,
954
- "increment": false,
955
- "note": {
956
- "value": ""
957
- }
958
- }
959
- ],
960
- "public.user_define_data_types": [
961
- {
962
- "name": "id",
963
- "type": {
964
- "type_name": "int4",
965
- "schemaName": null
966
- },
967
- "dbdefault": null,
968
- "not_null": true,
969
- "increment": true,
970
- "note": {
971
- "value": ""
972
- }
973
- },
974
- {
975
- "name": "name",
976
- "type": {
977
- "type_name": "varchar(50)",
978
- "schemaName": null
979
- },
980
- "dbdefault": null,
981
- "not_null": false,
982
- "increment": false,
983
- "note": {
984
- "value": ""
985
- }
986
- },
987
- {
988
- "name": "gender",
989
- "type": {
990
- "type_name": "gender_type",
991
- "schemaName": "public"
992
- },
993
- "dbdefault": null,
994
- "not_null": false,
995
- "increment": false,
996
- "note": {
997
- "value": ""
998
- }
999
- },
1000
- {
1001
- "name": "age",
1002
- "type": {
1003
- "type_name": "int4range",
1004
- "schemaName": null
1005
- },
1006
- "dbdefault": null,
1007
- "not_null": false,
1008
- "increment": false,
1009
- "note": {
1010
- "value": ""
1011
- }
1012
- },
1013
- {
1014
- "name": "height",
1015
- "type": {
1016
- "type_name": "float8",
1017
- "schemaName": null
1018
- },
1019
- "dbdefault": null,
1020
- "not_null": false,
1021
- "increment": false,
1022
- "note": {
1023
- "value": ""
1024
- }
1025
- },
1026
- {
1027
- "name": "weight",
1028
- "type": {
1029
- "type_name": "float8",
1030
- "schemaName": null
1031
- },
1032
- "dbdefault": null,
1033
- "not_null": false,
1034
- "increment": false,
1035
- "note": {
1036
- "value": ""
1037
- }
1038
- }
1039
- ],
1040
- "public.table_with_comments": [
1041
- {
1042
- "name": "id",
1043
- "type": {
1044
- "type_name": "int4",
1045
- "schemaName": null
1046
- },
1047
- "dbdefault": null,
1048
- "not_null": true,
1049
- "increment": true,
1050
- "note": {
1051
- "value": "Unique identifier for each item."
1052
- }
1053
- },
1054
- {
1055
- "name": "name",
1056
- "type": {
1057
- "type_name": "varchar(100)",
1058
- "schemaName": null
1059
- },
1060
- "dbdefault": null,
1061
- "not_null": false,
1062
- "increment": false,
1063
- "note": {
1064
- "value": "Item's name."
1065
- }
1066
- },
1067
- {
1068
- "name": "description",
1069
- "type": {
1070
- "type_name": "text",
1071
- "schemaName": null
1072
- },
1073
- "dbdefault": null,
1074
- "not_null": false,
1075
- "increment": false,
1076
- "note": {
1077
- "value": "Item's description"
1078
- }
1079
- },
1080
- {
1081
- "name": "created_at",
1082
- "type": {
1083
- "type_name": "timestamptz",
1084
- "schemaName": null
1085
- },
1086
- "dbdefault": {
1087
- "type": "expression",
1088
- "value": "CURRENT_TIMESTAMP"
1089
- },
1090
- "not_null": false,
1091
- "increment": false,
1092
- "note": {
1093
- "value": "Timestamp when the item was created."
1094
- }
1095
- }
1096
- ],
1097
- "public.authors": [
1098
- {
1099
- "name": "authorid",
1100
- "type": {
1101
- "type_name": "int4",
1102
- "schemaName": null
1103
- },
1104
- "dbdefault": null,
1105
- "not_null": true,
1106
- "increment": true,
1107
- "note": {
1108
- "value": ""
1109
- }
1110
- },
1111
- {
1112
- "name": "nationalityid",
1113
- "type": {
1114
- "type_name": "int4",
1115
- "schemaName": null
1116
- },
1117
- "dbdefault": null,
1118
- "not_null": true,
1119
- "increment": false,
1120
- "note": {
1121
- "value": ""
1122
- }
1123
- },
1124
- {
1125
- "name": "authorname",
1126
- "type": {
1127
- "type_name": "varchar(100)",
1128
- "schemaName": null
1129
- },
1130
- "dbdefault": null,
1131
- "not_null": false,
1132
- "increment": false,
1133
- "note": {
1134
- "value": ""
1135
- }
1136
- },
1137
- {
1138
- "name": "birthyear",
1139
- "type": {
1140
- "type_name": "int4",
1141
- "schemaName": null
1142
- },
1143
- "dbdefault": null,
1144
- "not_null": false,
1145
- "increment": false,
1146
- "note": {
1147
- "value": ""
1148
- }
1149
- }
1150
- ],
1151
- "public.books": [
1152
- {
1153
- "name": "bookid",
1154
- "type": {
1155
- "type_name": "int4",
1156
- "schemaName": null
1157
- },
1158
- "dbdefault": null,
1159
- "not_null": true,
1160
- "increment": true,
1161
- "note": {
1162
- "value": ""
1163
- }
1164
- },
1165
- {
1166
- "name": "authorid",
1167
- "type": {
1168
- "type_name": "int4",
1169
- "schemaName": null
1170
- },
1171
- "dbdefault": null,
1172
- "not_null": false,
1173
- "increment": false,
1174
- "note": {
1175
- "value": ""
1176
- }
1177
- },
1178
- {
1179
- "name": "nationalityid",
1180
- "type": {
1181
- "type_name": "int4",
1182
- "schemaName": null
1183
- },
1184
- "dbdefault": null,
1185
- "not_null": false,
1186
- "increment": false,
1187
- "note": {
1188
- "value": ""
1189
- }
1190
- },
1191
- {
1192
- "name": "isbn",
1193
- "type": {
1194
- "type_name": "varchar(20)",
1195
- "schemaName": null
1196
- },
1197
- "dbdefault": null,
1198
- "not_null": false,
1199
- "increment": false,
1200
- "note": {
1201
- "value": ""
1202
- }
1203
- },
1204
- {
1205
- "name": "title",
1206
- "type": {
1207
- "type_name": "varchar(200)",
1208
- "schemaName": null
1209
- },
1210
- "dbdefault": null,
1211
- "not_null": false,
1212
- "increment": false,
1213
- "note": {
1214
- "value": ""
1215
- }
1216
- }
1217
- ],
1218
- "public.table1": [
1219
- {
1220
- "name": "id",
1221
- "type": {
1222
- "type_name": "int4",
1223
- "schemaName": null
1224
- },
1225
- "dbdefault": null,
1226
- "not_null": true,
1227
- "increment": true,
1228
- "note": {
1229
- "value": ""
1230
- }
1231
- },
1232
- {
1233
- "name": "status",
1234
- "type": {
1235
- "type_name": "enum_type1",
1236
- "schemaName": "public"
1237
- },
1238
- "dbdefault": null,
1239
- "not_null": false,
1240
- "increment": false,
1241
- "note": {
1242
- "value": ""
1243
- }
1244
- }
1245
- ],
1246
- "public.table2": [
1247
- {
1248
- "name": "id",
1249
- "type": {
1250
- "type_name": "int4",
1251
- "schemaName": null
1252
- },
1253
- "dbdefault": null,
1254
- "not_null": true,
1255
- "increment": true,
1256
- "note": {
1257
- "value": ""
1258
- }
1259
- },
1260
- {
1261
- "name": "status",
1262
- "type": {
1263
- "type_name": "enum_type2",
1264
- "schemaName": "public"
1265
- },
1266
- "dbdefault": null,
1267
- "not_null": false,
1268
- "increment": false,
1269
- "note": {
1270
- "value": ""
1271
- }
1272
- }
1273
- ]
1274
- },
1275
- "refs": [
1276
- {
1277
- "name": "fk_authornationality",
1278
- "endpoints": [
1279
- {
1280
- "tableName": "books",
1281
- "schemaName": "public",
1282
- "fieldNames": [
1283
- "authorid",
1284
- "nationalityid"
1285
- ],
1286
- "relation": "*"
1287
- },
1288
- {
1289
- "tableName": "authors",
1290
- "schemaName": "public",
1291
- "fieldNames": [
1292
- "authorid",
1293
- "nationalityid"
1294
- ],
1295
- "relation": "1"
1296
- }
1297
- ],
1298
- "onDelete": "CASCADE",
1299
- "onUpdate": null
1300
- },
1301
- {
1302
- "name": "fk_order",
1303
- "endpoints": [
1304
- {
1305
- "tableName": "order_items",
1306
- "schemaName": "public",
1307
- "fieldNames": [
1308
- "order_id"
1309
- ],
1310
- "relation": "*"
1311
- },
1312
- {
1313
- "tableName": "orders",
1314
- "schemaName": "public",
1315
- "fieldNames": [
1316
- "order_id"
1317
- ],
1318
- "relation": "1"
1319
- }
1320
- ],
1321
- "onDelete": "CASCADE",
1322
- "onUpdate": null
1323
- },
1324
- {
1325
- "name": "fk_product",
1326
- "endpoints": [
1327
- {
1328
- "tableName": "order_items",
1329
- "schemaName": "public",
1330
- "fieldNames": [
1331
- "product_id"
1332
- ],
1333
- "relation": "*"
1334
- },
1335
- {
1336
- "tableName": "products",
1337
- "schemaName": "public",
1338
- "fieldNames": [
1339
- "product_id"
1340
- ],
1341
- "relation": "1"
1342
- }
1343
- ],
1344
- "onDelete": "CASCADE",
1345
- "onUpdate": null
1346
- },
1347
- {
1348
- "name": "fk_user",
1349
- "endpoints": [
1350
- {
1351
- "tableName": "orders",
1352
- "schemaName": "public",
1353
- "fieldNames": [
1354
- "user_id"
1355
- ],
1356
- "relation": "*"
1357
- },
1358
- {
1359
- "tableName": "users",
1360
- "schemaName": "public",
1361
- "fieldNames": [
1362
- "user_id"
1363
- ],
1364
- "relation": "1"
1365
- }
1366
- ],
1367
- "onDelete": "CASCADE",
1368
- "onUpdate": null
1369
- }
1370
- ],
1371
- "enums": [
1372
- {
1373
- "name": "enum_type1",
1374
- "schemaName": "dbml_test",
1375
- "values": [
1376
- {
1377
- "name": "value1"
1378
- },
1379
- {
1380
- "name": "value2"
1381
- }
1382
- ]
1383
- },
1384
- {
1385
- "name": "enum_type3",
1386
- "schemaName": "dbml_test",
1387
- "values": [
1388
- {
1389
- "name": "value4"
1390
- },
1391
- {
1392
- "name": "value5"
1393
- }
1394
- ]
1395
- },
1396
- {
1397
- "name": "enum_type1",
1398
- "schemaName": "public",
1399
- "values": [
1400
- {
1401
- "name": "value1"
1402
- },
1403
- {
1404
- "name": "value2"
1405
- }
1406
- ]
1407
- },
1408
- {
1409
- "name": "enum_type2",
1410
- "schemaName": "public",
1411
- "values": [
1412
- {
1413
- "name": "value1"
1414
- },
1415
- {
1416
- "name": "value3"
1417
- }
1418
- ]
1419
- },
1420
- {
1421
- "name": "gender_type",
1422
- "schemaName": "public",
1423
- "values": [
1424
- {
1425
- "name": "Male"
1426
- },
1427
- {
1428
- "name": "Female"
1429
- },
1430
- {
1431
- "name": "Other"
1432
- }
1433
- ]
1434
- }
1435
- ],
1436
- "indexes": {
1437
- "public.authors": [
1438
- {
1439
- "name": "authors_pkey",
1440
- "type": "btree",
1441
- "columns": [
1442
- {
1443
- "type": "column",
1444
- "value": "authorid"
1445
- },
1446
- {
1447
- "type": "column",
1448
- "value": "nationalityid"
1449
- }
1450
- ]
1451
- }
1452
- ],
1453
- "public.order_items": [
1454
- {
1455
- "name": "uq_order_product",
1456
- "type": "btree",
1457
- "columns": [
1458
- {
1459
- "type": "column",
1460
- "value": "order_id"
1461
- },
1462
- {
1463
- "type": "column",
1464
- "value": "product_id"
1465
- }
1466
- ]
1467
- },
1468
- {
1469
- "name": "idx_order_items_order_product",
1470
- "type": "btree",
1471
- "columns": [
1472
- {
1473
- "type": "column",
1474
- "value": "order_id"
1475
- },
1476
- {
1477
- "type": "column",
1478
- "value": "product_id"
1479
- }
1480
- ]
1481
- }
1482
- ],
1483
- "public.orders": [
1484
- {
1485
- "name": "idx_orders_user_date",
1486
- "type": "btree",
1487
- "columns": [
1488
- {
1489
- "type": "column",
1490
- "value": "user_id"
1491
- },
1492
- {
1493
- "type": "column",
1494
- "value": "order_date"
1495
- }
1496
- ]
1497
- }
1498
- ],
1499
- "public.products": [
1500
- {
1501
- "name": "idx_products_category",
1502
- "type": "btree",
1503
- "columns": [
1504
- {
1505
- "type": "column",
1506
- "value": "category"
1507
- }
1508
- ]
1509
- }
1510
- ],
1511
- "public.users": [
1512
- {
1513
- "name": "User Name",
1514
- "type": "btree",
1515
- "columns": [
1516
- {
1517
- "type": "column",
1518
- "value": "full_name"
1519
- }
1520
- ]
1521
- },
1522
- {
1523
- "name": "idx_users_email",
1524
- "type": "btree",
1525
- "columns": [
1526
- {
1527
- "type": "column",
1528
- "value": "email"
1529
- }
1530
- ]
1531
- },
1532
- {
1533
- "name": "users_is_active_lower_idx",
1534
- "type": "btree",
1535
- "columns": [
1536
- {
1537
- "type": "column",
1538
- "value": "is_active"
1539
- },
1540
- {
1541
- "type": "expression",
1542
- "value": "lower((full_name)::text)"
1543
- }
1544
- ]
1545
- }
1546
- ]
1547
- },
1548
- "tableConstraints": {
1549
- "public.all_default_values": {
1550
- "id": {
1551
- "checks": [],
1552
- "pk": true
1553
- }
1554
- },
1555
- "public.books": {
1556
- "bookid": {
1557
- "checks": [],
1558
- "pk": true
1559
- },
1560
- "isbn": {
1561
- "checks": [],
1562
- "unique": true
1563
- }
1564
- },
1565
- "public.order_items": {
1566
- "order_item_id": {
1567
- "checks": [],
1568
- "pk": true
1569
- },
1570
- "quantity": {
1571
- "checks": [
1572
- {
1573
- "name": "chk_quantity_positive",
1574
- "expression": "quantity > 0"
1575
- }
1576
- ]
1577
- },
1578
- "unit_price": {
1579
- "checks": [
1580
- {
1581
- "name": "chk_unit_price_positive",
1582
- "expression": "unit_price > (0)::numeric"
1583
- }
1584
- ]
1585
- }
1586
- },
1587
- "public.orders": {
1588
- "order_id": {
1589
- "checks": [],
1590
- "pk": true
1591
- },
1592
- "total_amount": {
1593
- "checks": [
1594
- {
1595
- "name": "chk_total_amount_positive",
1596
- "expression": "total_amount > (0)::numeric"
1597
- }
1598
- ]
1599
- },
1600
- "status": {
1601
- "checks": [
1602
- {
1603
- "name": "chk_status",
1604
- "expression": "(status)::text = ANY ((ARRAY['pending'::character varying, 'processing'::character varying, 'shipped'::character varying, 'delivered'::character varying, 'cancelled'::character varying])::text[])"
1605
- }
1606
- ]
1607
- }
1608
- },
1609
- "public.products": {
1610
- "product_id": {
1611
- "checks": [],
1612
- "pk": true
1613
- },
1614
- "price": {
1615
- "checks": [
1616
- {
1617
- "name": "chk_price_positive",
1618
- "expression": "price > (0)::numeric"
1619
- }
1620
- ]
1621
- },
1622
- "stock_quantity": {
1623
- "checks": [
1624
- {
1625
- "name": "chk_stock_non_negative",
1626
- "expression": "stock_quantity >= 0"
1627
- }
1628
- ]
1629
- }
1630
- },
1631
- "public.table1": {
1632
- "id": {
1633
- "checks": [],
1634
- "pk": true
1635
- }
1636
- },
1637
- "dbml_test.table1": {
1638
- "id": {
1639
- "checks": [],
1640
- "pk": true
1641
- }
1642
- },
1643
- "public.table2": {
1644
- "id": {
1645
- "checks": [],
1646
- "pk": true
1647
- }
1648
- },
1649
- "dbml_test.table3": {
1650
- "id": {
1651
- "checks": [],
1652
- "pk": true
1653
- }
1654
- },
1655
- "public.table_with_comments": {
1656
- "id": {
1657
- "checks": [],
1658
- "pk": true
1659
- }
1660
- },
1661
- "public.user_define_data_types": {
1662
- "id": {
1663
- "checks": [],
1664
- "pk": true
1665
- },
1666
- "height": {
1667
- "checks": [
1668
- {
1669
- "name": "user_define_data_types_height_check",
1670
- "expression": "height > (0)::double precision"
1671
- }
1672
- ]
1673
- },
1674
- "weight": {
1675
- "checks": [
1676
- {
1677
- "name": "chk_positive_weight",
1678
- "expression": "weight > (0)::double precision"
1679
- }
1680
- ]
1681
- }
1682
- },
1683
- "public.users": {
1684
- "user_id": {
1685
- "checks": [],
1686
- "pk": true
1687
- },
1688
- "email": {
1689
- "checks": [
1690
- {
1691
- "name": "chk_email_format",
1692
- "expression": "(email)::text ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}$'::text"
1693
- }
1694
- ],
1695
- "unique": true
1696
- },
1697
- "username": {
1698
- "checks": [],
1699
- "unique": true
1700
- },
1701
- "date_of_birth": {
1702
- "checks": [
1703
- {
1704
- "name": "chk_age",
1705
- "expression": "date_of_birth <= (CURRENT_DATE - '13 years'::interval)"
1706
- }
1707
- ]
1708
- }
1709
- }
1710
- },
1711
- "checks": {
1712
- "public.products": [
1713
- {
1714
- "name": "chk_created_at",
1715
- "expression": "created_at <= updated_at"
1716
- }
1717
- ]
1718
- }
1719
- }