@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,1430 +0,0 @@
1
- {
2
- "tables": [
3
- {
4
- "name": "categories",
5
- "note": {
6
- "value": ""
7
- }
8
- },
9
- {
10
- "name": "composite_key_1",
11
- "note": {
12
- "value": ""
13
- }
14
- },
15
- {
16
- "name": "composite_key_2",
17
- "note": {
18
- "value": ""
19
- }
20
- },
21
- {
22
- "name": "date_time_example",
23
- "note": {
24
- "value": ""
25
- }
26
- },
27
- {
28
- "name": "default_example",
29
- "note": {
30
- "value": ""
31
- }
32
- },
33
- {
34
- "name": "hash_index_example",
35
- "note": {
36
- "value": "table for storing names with a hash index"
37
- }
38
- },
39
- {
40
- "name": "index_example",
41
- "note": {
42
- "value": ""
43
- }
44
- },
45
- {
46
- "name": "order_items",
47
- "note": {
48
- "value": ""
49
- }
50
- },
51
- {
52
- "name": "orders",
53
- "note": {
54
- "value": ""
55
- }
56
- },
57
- {
58
- "name": "products",
59
- "note": {
60
- "value": ""
61
- }
62
- },
63
- {
64
- "name": "sqrt_triangle",
65
- "note": {
66
- "value": ""
67
- }
68
- },
69
- {
70
- "name": "status_example_2",
71
- "note": {
72
- "value": ""
73
- }
74
- },
75
- {
76
- "name": "users",
77
- "note": {
78
- "value": ""
79
- }
80
- }
81
- ],
82
- "fields": {
83
- "categories": [
84
- {
85
- "name": "cat_id",
86
- "type": {
87
- "type_name": "int unsigned",
88
- "schemaName": null
89
- },
90
- "dbdefault": null,
91
- "not_null": true,
92
- "increment": true,
93
- "note": {
94
- "value": ""
95
- }
96
- },
97
- {
98
- "name": "cat_name",
99
- "type": {
100
- "type_name": "varchar(50)",
101
- "schemaName": null
102
- },
103
- "dbdefault": null,
104
- "not_null": true,
105
- "increment": false,
106
- "note": {
107
- "value": ""
108
- }
109
- },
110
- {
111
- "name": "super_cat_id",
112
- "type": {
113
- "type_name": "int unsigned",
114
- "schemaName": null
115
- },
116
- "dbdefault": null,
117
- "not_null": false,
118
- "increment": false,
119
- "note": {
120
- "value": ""
121
- }
122
- },
123
- {
124
- "name": "created_at",
125
- "type": {
126
- "type_name": "timestamp",
127
- "schemaName": null
128
- },
129
- "dbdefault": {
130
- "value": "CURRENT_TIMESTAMP",
131
- "type": "expression"
132
- },
133
- "not_null": false,
134
- "increment": false,
135
- "note": {
136
- "value": ""
137
- }
138
- }
139
- ],
140
- "composite_key_1": [
141
- {
142
- "name": "id1_1",
143
- "type": {
144
- "type_name": "int unsigned",
145
- "schemaName": null
146
- },
147
- "dbdefault": null,
148
- "not_null": true,
149
- "increment": false,
150
- "note": {
151
- "value": ""
152
- }
153
- },
154
- {
155
- "name": "id1_2",
156
- "type": {
157
- "type_name": "int unsigned",
158
- "schemaName": null
159
- },
160
- "dbdefault": null,
161
- "not_null": true,
162
- "increment": false,
163
- "note": {
164
- "value": ""
165
- }
166
- },
167
- {
168
- "name": "email",
169
- "type": {
170
- "type_name": "varchar(255)",
171
- "schemaName": null
172
- },
173
- "dbdefault": null,
174
- "not_null": false,
175
- "increment": false,
176
- "note": {
177
- "value": ""
178
- }
179
- },
180
- {
181
- "name": "name",
182
- "type": {
183
- "type_name": "varchar(50)",
184
- "schemaName": null
185
- },
186
- "dbdefault": null,
187
- "not_null": false,
188
- "increment": false,
189
- "note": {
190
- "value": ""
191
- }
192
- }
193
- ],
194
- "composite_key_2": [
195
- {
196
- "name": "id2_1",
197
- "type": {
198
- "type_name": "int unsigned",
199
- "schemaName": null
200
- },
201
- "dbdefault": null,
202
- "not_null": true,
203
- "increment": false,
204
- "note": {
205
- "value": ""
206
- }
207
- },
208
- {
209
- "name": "id2_2",
210
- "type": {
211
- "type_name": "int unsigned",
212
- "schemaName": null
213
- },
214
- "dbdefault": null,
215
- "not_null": true,
216
- "increment": false,
217
- "note": {
218
- "value": ""
219
- }
220
- }
221
- ],
222
- "date_time_example": [
223
- {
224
- "name": "default_now",
225
- "type": {
226
- "type_name": "timestamp",
227
- "schemaName": null
228
- },
229
- "dbdefault": {
230
- "value": "CURRENT_TIMESTAMP",
231
- "type": "expression"
232
- },
233
- "not_null": false,
234
- "increment": false,
235
- "note": {
236
- "value": ""
237
- }
238
- },
239
- {
240
- "name": "default_local",
241
- "type": {
242
- "type_name": "timestamp",
243
- "schemaName": null
244
- },
245
- "dbdefault": {
246
- "value": "CURRENT_TIMESTAMP",
247
- "type": "expression"
248
- },
249
- "not_null": false,
250
- "increment": false,
251
- "note": {
252
- "value": ""
253
- }
254
- },
255
- {
256
- "name": "date_plus_7_days",
257
- "type": {
258
- "type_name": "date",
259
- "schemaName": null
260
- },
261
- "dbdefault": {
262
- "value": "(curdate() + interval 7 day)",
263
- "type": "expression"
264
- },
265
- "not_null": false,
266
- "increment": false,
267
- "note": {
268
- "value": ""
269
- }
270
- },
271
- {
272
- "name": "date_minus_30_days",
273
- "type": {
274
- "type_name": "date",
275
- "schemaName": null
276
- },
277
- "dbdefault": {
278
- "value": "(curdate() - interval 30 day)",
279
- "type": "expression"
280
- },
281
- "not_null": false,
282
- "increment": false,
283
- "note": {
284
- "value": ""
285
- }
286
- },
287
- {
288
- "name": "timestamp_plus_1_hour",
289
- "type": {
290
- "type_name": "timestamp",
291
- "schemaName": null
292
- },
293
- "dbdefault": {
294
- "value": "(now() + interval 1 hour)",
295
- "type": "expression"
296
- },
297
- "not_null": false,
298
- "increment": false,
299
- "note": {
300
- "value": ""
301
- }
302
- },
303
- {
304
- "name": "timestamp_minus_15_minutes",
305
- "type": {
306
- "type_name": "timestamp",
307
- "schemaName": null
308
- },
309
- "dbdefault": {
310
- "value": "(now() - interval 15 minute)",
311
- "type": "expression"
312
- },
313
- "not_null": false,
314
- "increment": false,
315
- "note": {
316
- "value": ""
317
- }
318
- },
319
- {
320
- "name": "on_update_1",
321
- "type": {
322
- "type_name": "datetime on update CURRENT_TIMESTAMP",
323
- "schemaName": null
324
- },
325
- "dbdefault": {
326
- "value": "CURRENT_TIMESTAMP",
327
- "type": "expression"
328
- },
329
- "not_null": false,
330
- "increment": false,
331
- "note": {
332
- "value": ""
333
- }
334
- },
335
- {
336
- "name": "on_update_2",
337
- "type": {
338
- "type_name": "datetime on update CURRENT_TIMESTAMP",
339
- "schemaName": null
340
- },
341
- "dbdefault": {
342
- "value": "CURRENT_TIMESTAMP",
343
- "type": "expression"
344
- },
345
- "not_null": false,
346
- "increment": false,
347
- "note": {
348
- "value": ""
349
- }
350
- }
351
- ],
352
- "default_example": [
353
- {
354
- "name": "id",
355
- "type": {
356
- "type_name": "int",
357
- "schemaName": null
358
- },
359
- "dbdefault": null,
360
- "not_null": true,
361
- "increment": true,
362
- "note": {
363
- "value": ""
364
- }
365
- },
366
- {
367
- "name": "column1",
368
- "type": {
369
- "type_name": "varchar(255)",
370
- "schemaName": null
371
- },
372
- "dbdefault": {
373
- "value": "concat(_utf8mb4\\'default \\',uuid())",
374
- "type": "expression"
375
- },
376
- "not_null": false,
377
- "increment": false,
378
- "note": {
379
- "value": ""
380
- }
381
- },
382
- {
383
- "name": "column2",
384
- "type": {
385
- "type_name": "varchar(255)",
386
- "schemaName": null
387
- },
388
- "dbdefault": {
389
- "value": "concat(_utf8mb4\\'random \\',floor((rand() * 100)))",
390
- "type": "expression"
391
- },
392
- "not_null": false,
393
- "increment": false,
394
- "note": {
395
- "value": ""
396
- }
397
- },
398
- {
399
- "name": "column3",
400
- "type": {
401
- "type_name": "varchar(255)",
402
- "schemaName": null
403
- },
404
- "dbdefault": {
405
- "value": "_utf8mb4",
406
- "type": "string"
407
- },
408
- "not_null": false,
409
- "increment": false,
410
- "note": {
411
- "value": ""
412
- }
413
- },
414
- {
415
- "name": "column4",
416
- "type": {
417
- "type_name": "double",
418
- "schemaName": null
419
- },
420
- "dbdefault": {
421
- "value": "0.5",
422
- "type": "number"
423
- },
424
- "not_null": false,
425
- "increment": false,
426
- "note": {
427
- "value": ""
428
- }
429
- },
430
- {
431
- "name": "created_date",
432
- "type": {
433
- "type_name": "date",
434
- "schemaName": null
435
- },
436
- "dbdefault": {
437
- "value": "curdate()",
438
- "type": "expression"
439
- },
440
- "not_null": false,
441
- "increment": false,
442
- "note": {
443
- "value": ""
444
- }
445
- },
446
- {
447
- "name": "first_date",
448
- "type": {
449
- "type_name": "date",
450
- "schemaName": null
451
- },
452
- "dbdefault": {
453
- "value": "2023-01-01",
454
- "type": "string"
455
- },
456
- "not_null": false,
457
- "increment": false,
458
- "note": {
459
- "value": ""
460
- }
461
- },
462
- {
463
- "name": "event_time",
464
- "type": {
465
- "type_name": "timestamp",
466
- "schemaName": null
467
- },
468
- "dbdefault": {
469
- "value": "2024-01-01 00:00:00",
470
- "type": "string"
471
- },
472
- "not_null": false,
473
- "increment": false,
474
- "note": {
475
- "value": ""
476
- }
477
- }
478
- ],
479
- "hash_index_example": [
480
- {
481
- "name": "id",
482
- "type": {
483
- "type_name": "int",
484
- "schemaName": null
485
- },
486
- "dbdefault": null,
487
- "not_null": true,
488
- "increment": false,
489
- "note": {
490
- "value": "unique identifier for each record"
491
- }
492
- },
493
- {
494
- "name": "name",
495
- "type": {
496
- "type_name": "varchar(100)",
497
- "schemaName": null
498
- },
499
- "dbdefault": null,
500
- "not_null": false,
501
- "increment": false,
502
- "note": {
503
- "value": "first name's of the individual"
504
- }
505
- },
506
- {
507
- "name": "name1",
508
- "type": {
509
- "type_name": "varchar(100)",
510
- "schemaName": null
511
- },
512
- "dbdefault": null,
513
- "not_null": false,
514
- "increment": false,
515
- "note": {
516
- "value": "last name's of the individual"
517
- }
518
- }
519
- ],
520
- "index_example": [
521
- {
522
- "name": "id",
523
- "type": {
524
- "type_name": "int",
525
- "schemaName": null
526
- },
527
- "dbdefault": null,
528
- "not_null": true,
529
- "increment": true,
530
- "note": {
531
- "value": ""
532
- }
533
- },
534
- {
535
- "name": "name_lower",
536
- "type": {
537
- "type_name": "varchar(100)",
538
- "schemaName": null
539
- },
540
- "dbdefault": null,
541
- "not_null": true,
542
- "increment": false,
543
- "note": {
544
- "value": ""
545
- }
546
- },
547
- {
548
- "name": "name_inline",
549
- "type": {
550
- "type_name": "varchar(100)",
551
- "schemaName": null
552
- },
553
- "dbdefault": null,
554
- "not_null": true,
555
- "increment": false,
556
- "note": {
557
- "value": ""
558
- }
559
- },
560
- {
561
- "name": "email",
562
- "type": {
563
- "type_name": "varchar(100)",
564
- "schemaName": null
565
- },
566
- "dbdefault": null,
567
- "not_null": true,
568
- "increment": false,
569
- "note": {
570
- "value": ""
571
- }
572
- },
573
- {
574
- "name": "age",
575
- "type": {
576
- "type_name": "int",
577
- "schemaName": null
578
- },
579
- "dbdefault": null,
580
- "not_null": false,
581
- "increment": false,
582
- "note": {
583
- "value": ""
584
- }
585
- },
586
- {
587
- "name": "city",
588
- "type": {
589
- "type_name": "varchar(50)",
590
- "schemaName": null
591
- },
592
- "dbdefault": null,
593
- "not_null": false,
594
- "increment": false,
595
- "note": {
596
- "value": ""
597
- }
598
- }
599
- ],
600
- "order_items": [
601
- {
602
- "name": "order_id",
603
- "type": {
604
- "type_name": "int unsigned",
605
- "schemaName": null
606
- },
607
- "dbdefault": null,
608
- "not_null": true,
609
- "increment": false,
610
- "note": {
611
- "value": ""
612
- }
613
- },
614
- {
615
- "name": "product_id",
616
- "type": {
617
- "type_name": "int unsigned",
618
- "schemaName": null
619
- },
620
- "dbdefault": null,
621
- "not_null": true,
622
- "increment": false,
623
- "note": {
624
- "value": ""
625
- }
626
- }
627
- ],
628
- "orders": [
629
- {
630
- "name": "order_id",
631
- "type": {
632
- "type_name": "int unsigned",
633
- "schemaName": null
634
- },
635
- "dbdefault": null,
636
- "not_null": true,
637
- "increment": true,
638
- "note": {
639
- "value": ""
640
- }
641
- },
642
- {
643
- "name": "user_id",
644
- "type": {
645
- "type_name": "int unsigned",
646
- "schemaName": null
647
- },
648
- "dbdefault": null,
649
- "not_null": false,
650
- "increment": false,
651
- "note": {
652
- "value": ""
653
- }
654
- }
655
- ],
656
- "products": [
657
- {
658
- "name": "id",
659
- "type": {
660
- "type_name": "int unsigned",
661
- "schemaName": null
662
- },
663
- "dbdefault": null,
664
- "not_null": true,
665
- "increment": true,
666
- "note": {
667
- "value": ""
668
- }
669
- },
670
- {
671
- "name": "price",
672
- "type": {
673
- "type_name": "decimal(10,2)",
674
- "schemaName": null
675
- },
676
- "dbdefault": null,
677
- "not_null": true,
678
- "increment": false,
679
- "note": {
680
- "value": ""
681
- }
682
- },
683
- {
684
- "name": "quantity",
685
- "type": {
686
- "type_name": "int",
687
- "schemaName": null
688
- },
689
- "dbdefault": null,
690
- "not_null": true,
691
- "increment": false,
692
- "note": {
693
- "value": ""
694
- }
695
- },
696
- {
697
- "name": "total_value",
698
- "type": {
699
- "type_name": "decimal(10,2) GENERATED ALWAYS AS ((`price` * `quantity`)) STORED",
700
- "schemaName": null
701
- },
702
- "dbdefault": null,
703
- "not_null": false,
704
- "increment": false,
705
- "note": {
706
- "value": ""
707
- }
708
- },
709
- {
710
- "name": "updated_at",
711
- "type": {
712
- "type_name": "timestamp on update CURRENT_TIMESTAMP",
713
- "schemaName": null
714
- },
715
- "dbdefault": {
716
- "value": "CURRENT_TIMESTAMP",
717
- "type": "expression"
718
- },
719
- "not_null": false,
720
- "increment": false,
721
- "note": {
722
- "value": ""
723
- }
724
- }
725
- ],
726
- "sqrt_triangle": [
727
- {
728
- "name": "side_a",
729
- "type": {
730
- "type_name": "double",
731
- "schemaName": null
732
- },
733
- "dbdefault": null,
734
- "not_null": false,
735
- "increment": false,
736
- "note": {
737
- "value": ""
738
- }
739
- },
740
- {
741
- "name": "side_b",
742
- "type": {
743
- "type_name": "double",
744
- "schemaName": null
745
- },
746
- "dbdefault": null,
747
- "not_null": false,
748
- "increment": false,
749
- "note": {
750
- "value": ""
751
- }
752
- },
753
- {
754
- "name": "side_c",
755
- "type": {
756
- "type_name": "double GENERATED ALWAYS AS (sqrt(((`side_a` * `side_a`) + (`side_b` * `side_b`)))) VIRTUAL",
757
- "schemaName": null
758
- },
759
- "dbdefault": null,
760
- "not_null": false,
761
- "increment": false,
762
- "note": {
763
- "value": ""
764
- }
765
- }
766
- ],
767
- "status_example_2": [
768
- {
769
- "name": "s1",
770
- "type": {
771
- "type_name": "status_example_2_s1_enum",
772
- "schemaName": null
773
- },
774
- "dbdefault": null,
775
- "not_null": true,
776
- "increment": false,
777
- "note": {
778
- "value": ""
779
- }
780
- },
781
- {
782
- "name": "s2",
783
- "type": {
784
- "type_name": "status_example_2_s2_enum",
785
- "schemaName": null
786
- },
787
- "dbdefault": null,
788
- "not_null": false,
789
- "increment": false,
790
- "note": {
791
- "value": ""
792
- }
793
- },
794
- {
795
- "name": "s3",
796
- "type": {
797
- "type_name": "status_example_2_s3_enum",
798
- "schemaName": null
799
- },
800
- "dbdefault": {
801
- "value": "active",
802
- "type": "string"
803
- },
804
- "not_null": false,
805
- "increment": false,
806
- "note": {
807
- "value": ""
808
- }
809
- },
810
- {
811
- "name": "s4",
812
- "type": {
813
- "type_name": "status_example_2_s4_enum",
814
- "schemaName": null
815
- },
816
- "dbdefault": {
817
- "value": "pending",
818
- "type": "string"
819
- },
820
- "not_null": false,
821
- "increment": false,
822
- "note": {
823
- "value": ""
824
- }
825
- },
826
- {
827
- "name": "s5",
828
- "type": {
829
- "type_name": "status_example_2_s5_enum",
830
- "schemaName": null
831
- },
832
- "dbdefault": null,
833
- "not_null": false,
834
- "increment": false,
835
- "note": {
836
- "value": ""
837
- }
838
- },
839
- {
840
- "name": "s6",
841
- "type": {
842
- "type_name": "status_example_2_s6_enum",
843
- "schemaName": null
844
- },
845
- "dbdefault": null,
846
- "not_null": true,
847
- "increment": false,
848
- "note": {
849
- "value": ""
850
- }
851
- },
852
- {
853
- "name": "s7",
854
- "type": {
855
- "type_name": "status_example_2_s7_enum",
856
- "schemaName": null
857
- },
858
- "dbdefault": {
859
- "value": "1",
860
- "type": "string"
861
- },
862
- "not_null": false,
863
- "increment": false,
864
- "note": {
865
- "value": ""
866
- }
867
- },
868
- {
869
- "name": "s8",
870
- "type": {
871
- "type_name": "status_example_2_s8_enum",
872
- "schemaName": null
873
- },
874
- "dbdefault": {
875
- "value": "0",
876
- "type": "string"
877
- },
878
- "not_null": false,
879
- "increment": false,
880
- "note": {
881
- "value": ""
882
- }
883
- }
884
- ],
885
- "users": [
886
- {
887
- "name": "user_id",
888
- "type": {
889
- "type_name": "int unsigned",
890
- "schemaName": null
891
- },
892
- "dbdefault": null,
893
- "not_null": true,
894
- "increment": true,
895
- "note": {
896
- "value": ""
897
- }
898
- },
899
- {
900
- "name": "username",
901
- "type": {
902
- "type_name": "varchar(50)",
903
- "schemaName": null
904
- },
905
- "dbdefault": null,
906
- "not_null": true,
907
- "increment": false,
908
- "note": {
909
- "value": ""
910
- }
911
- },
912
- {
913
- "name": "email",
914
- "type": {
915
- "type_name": "varchar(100)",
916
- "schemaName": null
917
- },
918
- "dbdefault": null,
919
- "not_null": true,
920
- "increment": false,
921
- "note": {
922
- "value": ""
923
- }
924
- },
925
- {
926
- "name": "password_hash",
927
- "type": {
928
- "type_name": "varchar(255)",
929
- "schemaName": null
930
- },
931
- "dbdefault": null,
932
- "not_null": true,
933
- "increment": false,
934
- "note": {
935
- "value": ""
936
- }
937
- },
938
- {
939
- "name": "first_name",
940
- "type": {
941
- "type_name": "varchar(50)",
942
- "schemaName": null
943
- },
944
- "dbdefault": null,
945
- "not_null": false,
946
- "increment": false,
947
- "note": {
948
- "value": ""
949
- }
950
- },
951
- {
952
- "name": "last_name",
953
- "type": {
954
- "type_name": "varchar(50)",
955
- "schemaName": null
956
- },
957
- "dbdefault": null,
958
- "not_null": false,
959
- "increment": false,
960
- "note": {
961
- "value": ""
962
- }
963
- },
964
- {
965
- "name": "date_of_birth",
966
- "type": {
967
- "type_name": "date",
968
- "schemaName": null
969
- },
970
- "dbdefault": null,
971
- "not_null": false,
972
- "increment": false,
973
- "note": {
974
- "value": ""
975
- }
976
- },
977
- {
978
- "name": "created_at",
979
- "type": {
980
- "type_name": "timestamp",
981
- "schemaName": null
982
- },
983
- "dbdefault": {
984
- "value": "CURRENT_TIMESTAMP",
985
- "type": "expression"
986
- },
987
- "not_null": false,
988
- "increment": false,
989
- "note": {
990
- "value": ""
991
- }
992
- },
993
- {
994
- "name": "last_login",
995
- "type": {
996
- "type_name": "timestamp",
997
- "schemaName": null
998
- },
999
- "dbdefault": {
1000
- "value": "CURRENT_TIMESTAMP",
1001
- "type": "expression"
1002
- },
1003
- "not_null": false,
1004
- "increment": false,
1005
- "note": {
1006
- "value": ""
1007
- }
1008
- },
1009
- {
1010
- "name": "is_active",
1011
- "type": {
1012
- "type_name": "tinyint(1)",
1013
- "schemaName": null
1014
- },
1015
- "dbdefault": {
1016
- "value": "1",
1017
- "type": "number"
1018
- },
1019
- "not_null": false,
1020
- "increment": false,
1021
- "note": {
1022
- "value": ""
1023
- }
1024
- }
1025
- ]
1026
- },
1027
- "refs": [
1028
- {
1029
- "name": "fk_test_composite",
1030
- "endpoints": [
1031
- {
1032
- "tableName": "composite_key_1",
1033
- "fieldNames": [
1034
- "id1_1",
1035
- "id1_2"
1036
- ],
1037
- "relation": "*"
1038
- },
1039
- {
1040
- "tableName": "composite_key_2",
1041
- "fieldNames": [
1042
- "id2_1",
1043
- "id2_2"
1044
- ],
1045
- "relation": "1"
1046
- }
1047
- ],
1048
- "onDelete": null,
1049
- "onUpdate": null
1050
- },
1051
- {
1052
- "name": "fk_detail_items_orders",
1053
- "endpoints": [
1054
- {
1055
- "tableName": "order_items",
1056
- "fieldNames": [
1057
- "order_id"
1058
- ],
1059
- "relation": "*"
1060
- },
1061
- {
1062
- "tableName": "orders",
1063
- "fieldNames": [
1064
- "order_id"
1065
- ],
1066
- "relation": "1"
1067
- }
1068
- ],
1069
- "onDelete": "CASCADE",
1070
- "onUpdate": null
1071
- },
1072
- {
1073
- "name": "fk_detail_items_products",
1074
- "endpoints": [
1075
- {
1076
- "tableName": "order_items",
1077
- "fieldNames": [
1078
- "product_id"
1079
- ],
1080
- "relation": "*"
1081
- },
1082
- {
1083
- "tableName": "products",
1084
- "fieldNames": [
1085
- "id"
1086
- ],
1087
- "relation": "1"
1088
- }
1089
- ],
1090
- "onDelete": null,
1091
- "onUpdate": null
1092
- },
1093
- {
1094
- "name": "fk_order_user",
1095
- "endpoints": [
1096
- {
1097
- "tableName": "orders",
1098
- "fieldNames": [
1099
- "user_id"
1100
- ],
1101
- "relation": "*"
1102
- },
1103
- {
1104
- "tableName": "users",
1105
- "fieldNames": [
1106
- "user_id"
1107
- ],
1108
- "relation": "1"
1109
- }
1110
- ],
1111
- "onDelete": "SET NULL",
1112
- "onUpdate": null
1113
- }
1114
- ],
1115
- "enums": [
1116
- {
1117
- "name": "status_example_2_s1_enum",
1118
- "values": [
1119
- {
1120
- "name": "active"
1121
- },
1122
- {
1123
- "name": "inactive"
1124
- },
1125
- {
1126
- "name": "pending"
1127
- }
1128
- ]
1129
- },
1130
- {
1131
- "name": "status_example_2_s2_enum",
1132
- "values": [
1133
- {
1134
- "name": "active"
1135
- },
1136
- {
1137
- "name": "inactive"
1138
- },
1139
- {
1140
- "name": "pending"
1141
- }
1142
- ]
1143
- },
1144
- {
1145
- "name": "status_example_2_s3_enum",
1146
- "values": [
1147
- {
1148
- "name": "active"
1149
- },
1150
- {
1151
- "name": "inactive"
1152
- },
1153
- {
1154
- "name": "pending"
1155
- }
1156
- ]
1157
- },
1158
- {
1159
- "name": "status_example_2_s4_enum",
1160
- "values": [
1161
- {
1162
- "name": "active"
1163
- },
1164
- {
1165
- "name": "inactive"
1166
- },
1167
- {
1168
- "name": "pending"
1169
- }
1170
- ]
1171
- },
1172
- {
1173
- "name": "status_example_2_s5_enum",
1174
- "values": [
1175
- {
1176
- "name": "0"
1177
- },
1178
- {
1179
- "name": "1"
1180
- },
1181
- {
1182
- "name": "2"
1183
- }
1184
- ]
1185
- },
1186
- {
1187
- "name": "status_example_2_s6_enum",
1188
- "values": [
1189
- {
1190
- "name": "0"
1191
- },
1192
- {
1193
- "name": "1"
1194
- },
1195
- {
1196
- "name": "2"
1197
- }
1198
- ]
1199
- },
1200
- {
1201
- "name": "status_example_2_s7_enum",
1202
- "values": [
1203
- {
1204
- "name": "0"
1205
- },
1206
- {
1207
- "name": "1"
1208
- },
1209
- {
1210
- "name": "2"
1211
- }
1212
- ]
1213
- },
1214
- {
1215
- "name": "status_example_2_s8_enum",
1216
- "values": [
1217
- {
1218
- "name": "0"
1219
- },
1220
- {
1221
- "name": "1"
1222
- },
1223
- {
1224
- "name": "2"
1225
- }
1226
- ]
1227
- }
1228
- ],
1229
- "indexes": {
1230
- "index_example": [
1231
- {
1232
- "name": "idx_city_age",
1233
- "type": "BTREE",
1234
- "columns": [
1235
- {
1236
- "value": "city",
1237
- "type": "column"
1238
- },
1239
- {
1240
- "value": "age",
1241
- "type": "column"
1242
- }
1243
- ],
1244
- "unique": false
1245
- },
1246
- {
1247
- "name": "idx_city_part",
1248
- "type": "BTREE",
1249
- "columns": [
1250
- {
1251
- "value": "city(5)",
1252
- "type": "expression"
1253
- }
1254
- ],
1255
- "unique": false
1256
- },
1257
- {
1258
- "name": "idx_name",
1259
- "type": "BTREE",
1260
- "columns": [
1261
- {
1262
- "value": "name_inline",
1263
- "type": "column"
1264
- }
1265
- ],
1266
- "unique": false
1267
- },
1268
- {
1269
- "name": "idx_name_lower",
1270
- "type": "BTREE",
1271
- "columns": [
1272
- {
1273
- "value": "lower(name_lower)",
1274
- "type": "expression"
1275
- }
1276
- ],
1277
- "unique": false
1278
- }
1279
- ],
1280
- "hash_index_example": [
1281
- {
1282
- "name": "idx_name_name1",
1283
- "type": "HASH",
1284
- "columns": [
1285
- {
1286
- "value": "name",
1287
- "type": "column"
1288
- },
1289
- {
1290
- "value": "name1",
1291
- "type": "column"
1292
- }
1293
- ],
1294
- "unique": false
1295
- }
1296
- ],
1297
- "composite_key_1": [
1298
- {
1299
- "name": "PRIMARY",
1300
- "primary": true,
1301
- "columns": [
1302
- {
1303
- "type": "column",
1304
- "value": "id1_1"
1305
- },
1306
- {
1307
- "type": "column",
1308
- "value": "id1_2"
1309
- }
1310
- ]
1311
- },
1312
- {
1313
- "name": "uc_unique_composite",
1314
- "unique": true,
1315
- "columns": [
1316
- {
1317
- "type": "column",
1318
- "value": "email"
1319
- },
1320
- {
1321
- "type": "column",
1322
- "value": "name"
1323
- }
1324
- ]
1325
- }
1326
- ],
1327
- "composite_key_2": [
1328
- {
1329
- "name": "PRIMARY",
1330
- "primary": true,
1331
- "columns": [
1332
- {
1333
- "type": "column",
1334
- "value": "id2_1"
1335
- },
1336
- {
1337
- "type": "column",
1338
- "value": "id2_2"
1339
- }
1340
- ]
1341
- }
1342
- ]
1343
- },
1344
- "tableConstraints": {
1345
- "categories": {
1346
- "cat_id": {
1347
- "checks": [],
1348
- "pk": true
1349
- }
1350
- },
1351
- "default_example": {
1352
- "id": {
1353
- "checks": [],
1354
- "pk": true
1355
- }
1356
- },
1357
- "hash_index_example": {
1358
- "id": {
1359
- "checks": [],
1360
- "pk": true
1361
- }
1362
- },
1363
- "index_example": {
1364
- "email": {
1365
- "checks": [],
1366
- "unique": true
1367
- },
1368
- "id": {
1369
- "checks": [],
1370
- "pk": true
1371
- }
1372
- },
1373
- "orders": {
1374
- "order_id": {
1375
- "checks": [],
1376
- "pk": true
1377
- }
1378
- },
1379
- "products": {
1380
- "id": {
1381
- "checks": [],
1382
- "pk": true
1383
- },
1384
- "quantity": {
1385
- "checks": [
1386
- {
1387
- "name": "max_quantity",
1388
- "expression": "`quantity` < 10000"
1389
- }
1390
- ]
1391
- },
1392
- "total_value": {
1393
- "checks": [
1394
- {
1395
- "name": "products_chk_2",
1396
- "expression": "`total_value` > 0"
1397
- }
1398
- ]
1399
- }
1400
- },
1401
- "users": {
1402
- "email": {
1403
- "checks": [],
1404
- "unique": true
1405
- },
1406
- "user_id": {
1407
- "checks": [],
1408
- "pk": true
1409
- },
1410
- "username": {
1411
- "checks": [],
1412
- "unique": true
1413
- }
1414
- }
1415
- },
1416
- "checks": {
1417
- "users": [
1418
- {
1419
- "name": "chk_last_login",
1420
- "expression": "`created_at` <= `last_login`"
1421
- }
1422
- ],
1423
- "products": [
1424
- {
1425
- "name": "products_chk_1",
1426
- "expression": "(`price` > 0) and (`price` < 1000000)"
1427
- }
1428
- ]
1429
- }
1430
- }