Skip to main content

Instalacja nowych wersji oprogramowania

Maxime avatar
Written by Maxime
Updated over 3 months ago

Kroki postępowania podczas instalacji nowej wersji oprogramowania:

  1. Pobranie plików z serwera

  2. Wyłączenie kontenerów - docker-compose down

  3. Podmiana plików docker-compose oraz .env

  4. Wykonanie migracji SQLMigrations.sql w LDS

  5. Włączenie kontenerów - docker-compose up

  6. Wykonanie migracji wewnątrz kontenerów:
    - docker exec -it <id serwisu> bash
    - curl -XPOST -H 'Host: localhost' -H 'X-Tenant-Id: placeholder' -H 'Execution-id: placeholder' -H "Content-type: application/json" -d '{}' 'http://localhost/api/database/update'
    - exit

    Punkt ten można też wykonać skryptem (przetestowany u nas):
    Po wgraniu nowej wersji aplikacji, należy wykonać migrację wewnątrz kontenerów wszystkich serwisów skryptem (automatycznie wykonującym je) poniżej. Skrypt należy uruchomić komendą sh migrations.sh w katalogu z plikiem.

  7. Sprawdzenie wykonania migracji serwisów
    Jeżeli migracje zostały wykonane skryptem to wszystkie serwisy dostaną polecenie do wykonania migracji. Kiedy w serwisie brakuje migracji i zostaną one wykonane pomyślnie, output w konsoli będzie wyglądał tak (wszystkie poniższe screeny są z wykonania migracji w ConsentService:

    mceclip0.png


    Kiedy w serwisie brakuje migracji i zostaną one wykonane, ale z błędem, w sekcji "error" będzie zwrócony błąd mówiący o niepowodzeniu update, np.:

    "error" : {
    "message" : "An error occurred while deserializing the Id property of class Psd2Hub.Services.ConsentService.Repository.Models.DeletedConsent: Cannot deserialize a 'Guid' from BsonType 'ObjectId'.",
    "migration" : "1.0.7 MoveDeletedConsentsHistory"
    },
    "migrationsRan" : [
    "1.0.1 AddAccountIsDeletedFlag",
    "1.0.2 ChangeIsBusinessToBusinessContext",
    "1.0.3 MigrateConsentAspspDeletion",
    "1.0.4 AddDeletionIndexesOnConsetDeleted",
    "1.0.5 MoveSoftDeletedConsentsToDeleted",
    "1.0.6 MigrateHistoryToNewStructure"
    ]

    wtedy należy w NLogu sprawdzić logi z wykonania: .find({'executionData.id':'placeholder'}).sort({date:-1})
    Do potwierdzenia pomyślnego wykonania migracji można sprawdzić w bazie danego serwisu w mongo w kolekcji _migrations listę migracji:
    przed wykonaniem curl na ConsentService:

    mceclip1.png


    po wykonaniu:

    mceclip2.png




    Kiedy serwis nie ma żadnej migracji do wykonania to wtedy zostanie zwrócona pusta lista jak poniżej, wtedy wszystko jest ok:

    mceclip3.png
Attachment icon
Did this answer your question?