Closed moldovangeorge closed 2 years ago
Tagging @cgillum as a SQL Provider owner. Can you help us understand if this was the intended behavior or just a slip in the new version?
You should be able to upgrade your schema without downtime by simply running the logic.sql script against your database. Can you try that and let me know if it unblocks you?
Our current setup is that we perform the DB migration using the CreateIfNotExistsAsync method on the DTF Client, followed by an app deployment that uses the new version (e.g 1.0.0-rc2). The issue here is that between the time we upgrade the DB schema, and the time we update the code to use the latest version, the setup no longer works, because the old code version 1.0.0-RC is not compatible with the 1.0.0-rc2 schema (the worker is unable to process any work). So for the duration of the code deployment, we have complete downtime.
Ah, I see. Your current upgrade workflow is updating the schema, but you're observing that the new schema isn't backwards compatible (which I know understand as being the cause of the first error mentioned above), hence the error.
Looking more closely, I do see that the upgrade from 1.0.0-rc and 1.0.0-rc2 was indeed breaking because of the changes made in #97. I've updated the release notes to reflect this. Apologies for the inconvenience. The plan is to ensure backwards compatibility starting in the final v1.0.0 release, which we hope to have done soon.
Thanks for the response, looking forward to the final stable release! ✅
While upgrading from 1.0.0-rc to 1.0.0 rc2 I bumped into the following issues :
1.0.0-rc code does not work on 1.0.0 rc2 schema because of :
1.0.0-rc2 code does not work on 1.0.0 rc schema because of :
So there is no way to migrate between the 2 versions without downtime.