Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Natalia Novosad 3 posts 83 karma points
    Oct 03, 2023 @ 10:03
    Natalia Novosad
    0

    Complexity with live pre-configuration setup on top of uSkinned

    Dear Community,

    I've tried to find a way to simplify a deployment to a live environment of uSkinned based Umbraco solution, but have seen that suites me best. Is that because of the architectural decision provided in scope uSkinned extension? Or there might be a way I am not aware of.

    So, here is problem: due to the official documentation, we have to follow up the DB pre-configuration steps and only afterwards install uSkinned package on top of that. There is nothing wrong at the development stage, but once we go live, we have to integrate these pre-configuration steps into each environment, which means some extra DevOps work have to be done (another option would be - integration an uSkinned project with Umbraco Cloud). I mean - why couldn't uSkinned do it on our behalf, meaning - if it cannot find what it needs, just make it up themselves?

    I will be honestly grateful for any clarification and explanation behind the decision.

  • Marc Love (uSkinned.net) 447 posts 1789 karma points
    Oct 04, 2023 @ 08:54
    Marc Love (uSkinned.net)
    0

    Hi Natalia,

    Marc from uSkinned here. Can you explain what is going wrong with deployment so that we can better understand and help you with your issue?

    Kind regards,

    Marc

  • Natalia Novosad 3 posts 83 karma points
    Oct 04, 2023 @ 10:23
    Natalia Novosad
    0

    Hi Marc,

    Thank you for paying attention to my question. Firstly, let me explain the concern in other words: I, as a developer, in order to spin up an Umbraco + uSkinned backoffice/website parts, have to:

    1. Create an empty Umbraco template project
    2. Run it for the first time and complete installation screen, so a db with its tables and relationships will all be in place.
    3. Now, we can get back to the project and install uSkinned nuget package.
    4. And then create/add whatever you need in order to achieve goals.

    This development workflow is totally fine (now you are free to create whatever is needed) until it comes to the live deployment stage. How I would like it to be - create a corresponding DB on a production environment, justify your connection string accordingly in the project, create a build and upload it to production - work is done. But that's not how it works, because we won't have the preconfigured DB tables and relations that come along with steps 1-2 from above. In order to make it work I either have to create and spin up and empty Umbraco template on production for that DB, or ask a DevOps team to help out by creating the deployment pipelines that will simplify the process. That was the main concern/problem.

    In meanwhile, while investigating how uSkinned is integrated into solution, I found the reason why we need these pre-configuration steps. There are some Options class, like USNSiteBuilder.Core.Components.ConfigureIndexOptions, that internally makes a call to a db table umbracoLanguages, to find out the backoffice default language, and this is the very first time it fails, this is a stage when not all the required pipeline middlewares are added and spined up, and that's the reason I cannot, for example, intentionally call InstallApiController to launch the pre-configuration steps.

    Hope this helps to get the point.

    Many thanks, Natalia

  • Marc Love (uSkinned.net) 447 posts 1789 karma points
    Oct 04, 2023 @ 15:04
    Marc Love (uSkinned.net)
    100

    Hi Natalia,

    Your concerns are actually related to any Umbraco project and not specifically uSkinned.

    When you first create an Umbraco Solution you will have an empty database.

    When you first run your project, a database migration process is initiated which creates all of the Umbraco tables in your database.

    When you first run your project after uSkinned has been installed, a database migration process is initiated which creates all of your Document Types, Data Types, Media Type settings, demo content and some other setup tasks which add new records to your database tables.

    The process of deploying your project to a new environment will only copy files to your server. Deployment does not do anything with the database.

    The normal process would be to backup your local database and restore the database on your other environment.

    Let me know if you require any further clarification.

    Kind regards,

    Marc

  • Natalia Novosad 3 posts 83 karma points
    Oct 05, 2023 @ 07:38
    Natalia Novosad
    0

    Hi Marc,

    Thank you for the explanation. I've got an answer to my question.

    Best regards, Natalia

Please Sign in or register to post replies

Write your reply to:

Draft