@@ -296,8 +296,6 @@ describe('autoupdate', function() {
296
296
keys : [ 'firstname' ] ,
297
297
order : [ 'ASC' ] } ,
298
298
} ) ;
299
-
300
- // console.log(err, result);
301
299
done ( err , result ) ;
302
300
} ) ;
303
301
} ) ;
@@ -419,77 +417,7 @@ describe('autoupdate', function() {
419
417
} ,
420
418
} ;
421
419
422
- const customer3_schema = {
423
- 'name' : 'CustomerTest3' ,
424
- 'options' : {
425
- 'idInjection' : false ,
426
- 'postgresql' : {
427
- 'schema' : 'myapp_test' ,
428
- 'table' : 'customer_test3' ,
429
- } ,
430
- } ,
431
- 'properties' : {
432
- 'id' : {
433
- 'type' : 'String' ,
434
- 'length' : 20 ,
435
- 'id' : 1 ,
436
- } ,
437
- 'name' : {
438
- 'type' : 'String' ,
439
- 'required' : false ,
440
- 'length' : 40 ,
441
- } ,
442
- 'email' : {
443
- 'type' : 'String' ,
444
- 'required' : true ,
445
- 'length' : 40 ,
446
- } ,
447
- 'age' : {
448
- 'type' : 'Number' ,
449
- 'required' : false ,
450
- } ,
451
- } ,
452
- } ;
453
-
454
420
const orderTest_schema_v1 = {
455
- 'name' : 'OrderTest' ,
456
- 'options' : {
457
- 'idInjection' : false ,
458
- 'postgresql' : {
459
- 'schema' : 'myapp_test' ,
460
- 'table' : 'order_test' ,
461
- } ,
462
- 'foreignKeys' : {
463
- 'fk_ordertest_customerId' : {
464
- 'name' : 'fk_ordertest_customerId' ,
465
- 'entity' : 'CustomerTest3' ,
466
- 'entityKey' : 'id' ,
467
- 'foreignKey' : 'customerId' ,
468
- } ,
469
- } ,
470
- } ,
471
- 'properties' : {
472
- 'id' : {
473
- 'type' : 'String' ,
474
- 'length' : 20 ,
475
- 'id' : 1 ,
476
- } ,
477
- 'customerId' : {
478
- 'type' : 'String' ,
479
- 'length' : 20 ,
480
- 'postgresql' : {
481
- 'columnName' : 'customerId' ,
482
- } ,
483
- } ,
484
- 'description' : {
485
- 'type' : 'String' ,
486
- 'required' : false ,
487
- 'length' : 40 ,
488
- } ,
489
- } ,
490
- } ;
491
-
492
- const orderTest_schema_v2 = {
493
421
'name' : 'OrderTest' ,
494
422
'options' : {
495
423
'idInjection' : false ,
@@ -512,10 +440,6 @@ describe('autoupdate', function() {
512
440
'length' : 20 ,
513
441
'id' : 1 ,
514
442
} ,
515
- 'subid' : {
516
- 'type' : 'int' ,
517
- 'id' : 1 ,
518
- } ,
519
443
'customerId' : {
520
444
'type' : 'String' ,
521
445
'length' : 20 ,
@@ -528,17 +452,10 @@ describe('autoupdate', function() {
528
452
'required' : false ,
529
453
'length' : 40 ,
530
454
} ,
531
- 'productId' : {
532
- 'type' : 'String' ,
533
- 'length' : 20 ,
534
- 'postgresql' : {
535
- 'columnName' : 'productId' ,
536
- } ,
537
- } ,
538
455
} ,
539
456
} ;
540
457
541
- const orderTest_schema_v3 = {
458
+ const orderTest_schema_v2 = {
542
459
'name' : 'OrderTest' ,
543
460
'options' : {
544
461
'idInjection' : false ,
@@ -547,12 +464,6 @@ describe('autoupdate', function() {
547
464
'table' : 'order_test' ,
548
465
} ,
549
466
'foreignKeys' : {
550
- 'fk_ordertest_customerId' : {
551
- 'name' : 'fk_ordertest_customerId' ,
552
- 'entity' : 'CustomerTest2' ,
553
- 'entityKey' : 'id' ,
554
- 'foreignKey' : 'customerId' ,
555
- } ,
556
467
'fk_ordertest_productId' : {
557
468
'name' : 'fk_ordertest_productId' ,
558
469
'entity' : 'Product' ,
@@ -589,7 +500,7 @@ describe('autoupdate', function() {
589
500
} ,
590
501
} ;
591
502
592
- const orderTest_schema_v4 = {
503
+ const orderTest_schema_v3 = {
593
504
'name' : 'OrderTest' ,
594
505
'options' : {
595
506
'idInjection' : false ,
@@ -630,9 +541,7 @@ describe('autoupdate', function() {
630
541
} ,
631
542
} ;
632
543
633
- ds . createModel ( product_schema . name , product_schema . properties , product_schema . options ) ;
634
544
ds . createModel ( customer2_schema . name , customer2_schema . properties , customer2_schema . options ) ;
635
- ds . createModel ( customer3_schema . name , customer3_schema . properties , customer3_schema . options ) ;
636
545
637
546
// Table create order is important. Referenced tables must exist before creating a reference.
638
547
// do initial update/creation of referenced tables
@@ -642,7 +551,11 @@ describe('autoupdate', function() {
642
551
return done ( err ) ;
643
552
}
644
553
554
+ // do initial update/creation of of referenced tables for the next step
555
+ // model OrderTest has a fk refers to model CustomerTest2
556
+ ds . createModel ( product_schema . name , product_schema . properties , product_schema . options ) ;
645
557
// do initial update/creation of table with fk
558
+ // model OrderTest has a fk refers to model CustomerTest2
646
559
ds . createModel ( orderTest_schema_v1 . name , orderTest_schema_v1 . properties , orderTest_schema_v1 . options ) ;
647
560
ds . autoupdate ( function ( err ) {
648
561
if ( err ) {
@@ -662,70 +575,48 @@ describe('autoupdate', function() {
662
575
assert ( foreignKeys ) ;
663
576
assert . equal ( foreignKeys . length , 1 ) ;
664
577
assert . equal ( foreignKeys [ 0 ] . pkColumnName , 'id' ) ;
665
- assert . equal ( foreignKeys [ 0 ] . pkTableName , 'customer_test3 ' ) ;
578
+ assert . equal ( foreignKeys [ 0 ] . pkTableName , 'customer_test2 ' ) ;
666
579
assert . equal ( foreignKeys [ 0 ] . fkColumnName , 'customerId' ) ;
667
580
assert . equal ( foreignKeys [ 0 ] . fkName , 'fk_ordertest_customerId' ) ;
668
581
669
- // update and add another fk
670
- ds . createModel ( orderTest_schema_v2 . name , orderTest_schema_v2 . properties , orderTest_schema_v2 . options ) ;
582
+ // update the fk of model OrderTest from customerId to productId
583
+ // productId refers to model Product
584
+ ds . createModel ( orderTest_schema_v2 . name , orderTest_schema_v2 . properties ,
585
+ orderTest_schema_v2 . options ) ;
671
586
ds . autoupdate ( function ( err ) {
672
587
if ( err ) {
673
588
err . message += ' (while updating OrderTest schema v2)' ;
674
589
return done ( err ) ;
675
590
}
676
- ds . discoverModelProperties ( 'order_test' , function ( err , props ) {
591
+ // get the foreign keys for order_test
592
+ ds . connector . discoverForeignKeys ( 'order_test' , { } , function ( err , foreignKeys ) {
677
593
if ( err ) return done ( err ) ;
678
- // validate that we have the correct number of properties
679
- assert . equal ( props . length , 4 ) ;
680
-
681
- // get the foreign keys for order_test
682
- ds . connector . discoverForeignKeys ( 'order_test' , { } , function ( err , foreignKeysUpdated ) {
683
- if ( err ) return done ( err ) ;
684
- // validate that the foreign keys exist and point to the new column
685
- assert ( foreignKeysUpdated ) ;
686
- assert . equal ( foreignKeysUpdated . length , 1 ) ;
687
- assert . equal ( foreignKeysUpdated [ 0 ] . pkColumnName , 'id' ) ;
688
- assert . equal ( foreignKeysUpdated [ 0 ] . pkTableName , 'customer_test2' ) ;
689
- assert . equal ( foreignKeysUpdated [ 0 ] . fkColumnName , 'customerId' ) ;
690
- assert . equal ( foreignKeysUpdated [ 0 ] . fkName , 'fk_ordertest_customerId' ) ;
691
-
692
- // create multiple fks on object
693
- ds . createModel ( orderTest_schema_v3 . name , orderTest_schema_v3 . properties ,
694
- orderTest_schema_v3 . options ) ;
695
- ds . autoupdate ( function ( err ) {
696
- if ( err ) {
697
- err . message += ' (while updating OrderTest schema v3)' ;
698
- return done ( err ) ;
699
- }
594
+ assert ( foreignKeys ) ;
595
+ assert . equal ( foreignKeys . length , 1 ) ;
596
+ assert . equal ( foreignKeys [ 0 ] . pkTableName , 'product_test' ) ;
597
+ assert . equal ( foreignKeys [ 0 ] . fkColumnName , 'productId' ) ;
598
+ assert . equal ( foreignKeys [ 0 ] . fkName , 'fk_ordertest_productId' ) ;
599
+
600
+ // remove fk from model OrderTest
601
+ ds . createModel ( orderTest_schema_v3 . name , orderTest_schema_v3 . properties ,
602
+ orderTest_schema_v3 . options ) ;
603
+ ds . autoupdate ( function ( err ) {
604
+ if ( err ) {
605
+ err . message += ' (while updating OrderTest schema v3)' ;
606
+ return done ( err ) ;
607
+ }
608
+ ds . discoverModelProperties ( 'order_test' , function ( err , props ) {
609
+ if ( err ) return done ( err ) ;
610
+
611
+ // validate that we have the correct number of properties
612
+ assert . equal ( props . length , 4 ) ;
613
+
700
614
// get the foreign keys for order_test
701
- ds . connector . discoverForeignKeys ( 'order_test' , { } , function ( err , foreignKeysMulti ) {
615
+ ds . connector . discoverForeignKeys ( 'order_test' , { } , function ( err , foreignKeysEmpty ) {
702
616
if ( err ) return done ( err ) ;
703
- assert ( foreignKeysMulti ) ;
704
- assert . equal ( foreignKeysMulti . length , 2 ) ;
705
-
706
- // remove fk
707
- ds . createModel ( orderTest_schema_v4 . name , orderTest_schema_v4 . properties ,
708
- orderTest_schema_v4 . options ) ;
709
- ds . autoupdate ( function ( err ) {
710
- if ( err ) {
711
- err . message += ' (while updating OrderTest schema v4)' ;
712
- return done ( err ) ;
713
- }
714
- ds . discoverModelProperties ( 'order_test' , function ( err , props ) {
715
- if ( err ) return done ( err ) ;
716
-
717
- // validate that we have the correct number of properties
718
- assert . equal ( props . length , 4 ) ;
719
-
720
- // get the foreign keys for order_test
721
- ds . connector . discoverForeignKeys ( 'order_test' , { } , function ( err , foreignKeysEmpty ) {
722
- if ( err ) return done ( err ) ;
723
- assert ( foreignKeysEmpty ) ;
724
- assert . equal ( foreignKeysEmpty . length , 0 ) ;
725
- done ( ) ;
726
- } ) ;
727
- } ) ;
728
- } ) ;
617
+ assert ( foreignKeysEmpty ) ;
618
+ assert . equal ( foreignKeysEmpty . length , 0 ) ;
619
+ done ( ) ;
729
620
} ) ;
730
621
} ) ;
731
622
} ) ;
0 commit comments