Skip to main content

Hi,

My question:

How can I deploy to another environment? Currently I have 2 databases: Development & Testing and I have multiple versions in Development, but only 1 in Testing:

Project versions

Now, I want to deploy my changes made in 1.66 to the test database. However, when I “Generate definition" I get a popup saying that it generated its definition based on > 1.65. When I proceed, it does not create an upgrade script in the “Execute source code” step.

How can I let the Software Factory know that I want to generate its definition based on the previous project in the test environment?

Hi Nick,

Prior to 2023.1, the way the Software Factory checks the version of the runtime configuration is by comparing the previous project version and the project version mentioned in the sf_product_info table inside your end database (Test database in this case). If the previous project version matches with the project version mentioned in that table, the Upgrade script is set to be executed, else it isn't.

You mention the Upgrade code file is not there. Can you verify the Upgrade code file does exist in Full model > tab: Code files? Also double check the base project "SQLSERVER_UG” is linked to your work project. You can do that in Project overview > tab Versions > tab Base projects. If not linked, link it and Generate definitions. This will ensure the Upgrade code file is inherited from the base project.

Hope this helps!


I found the solution:

  1. Go to Projects > Project Overview > Project Versions
  2. Copy the version you want to deploy in test environment
  3. Edit this project version and make sure the “previous project version” is the one that was deployed earlier

Now, when you generate definition, it is based on the correct project version.

Note that just like Mark stated above, we use an older version of the Software Factory, so I don’t know if it still works this way.