This question is locked. New answers and comments are not allowed.
Hi everyone,
I am wondering if and how OpenAccess ORM supports three challenges that probably every software vendor encounters with every single software-release in an enterprise-environment:
It is usually required that a software that is delivered must have at least the following three capabilities:
1. Environment independence
2. Security
3. Migration with rollback-capability
ad 1) A software is always delivered as one single, self-contained file (e.g. a zip file) which contains a) the software, b) installation instructions and c) migration scripts. This package must run on every environment the system consists of WITHOUT MANUAL ALTERATIONS. That means: the same software package can be deployed on the development environment, the system test environment, the test environment, the cluster test environment, the performance test environment and the production environment. So a software like OpenAccess ORM must make it easy to somehow support the need for multiple connection strings etc. (one for each environment) that can be switched without editing a file manually. Is that possible? How?
ad 2) Passwords are never ever allowed to be part of any software delivery. So it is never allowed to have a config file for an ORM that contains a password. Especially if you take "environment independence" into account: it can never contain a config file with multiple connection strings and multiple passwords. How can that be achieved?
ad 3) How does OpenAccess ORM support schema migrations, data migrations and migration rollbacks? Example: you have a table "stuff" which has a field "status" which has only 2 possible values: A=active, C=closed. In the past couple of months, the customer has filled that table with 100GB worth of data. Now you are supposed to deliver the next release in which you are supposed to replace the field "status" with "status-id" which refers to a new lookup-table "status" which has the fields "status-id" and "status-description". Let's say you have updated your domain model in OpenAccess ORM accordingly: how is the rollout and migration supported? At least one needs a script that
* adds the table "status" to the schema
* inserts the values that one needs to begin with (the lookup values for status)
* adds the field "status-id" to "stuff"
* performs a migration so that all existing entries in "stuff" actually use the new status-id field
* deletes the field "status" in "stuff".
and a script that rolls back this entire migration in case something fails and production needs to be rolled back to the previous release.
Does OpenAccess ORM create such scripts automatically or semi-automatically? How is that done?
Thanks
Matt
I am wondering if and how OpenAccess ORM supports three challenges that probably every software vendor encounters with every single software-release in an enterprise-environment:
It is usually required that a software that is delivered must have at least the following three capabilities:
1. Environment independence
2. Security
3. Migration with rollback-capability
ad 1) A software is always delivered as one single, self-contained file (e.g. a zip file) which contains a) the software, b) installation instructions and c) migration scripts. This package must run on every environment the system consists of WITHOUT MANUAL ALTERATIONS. That means: the same software package can be deployed on the development environment, the system test environment, the test environment, the cluster test environment, the performance test environment and the production environment. So a software like OpenAccess ORM must make it easy to somehow support the need for multiple connection strings etc. (one for each environment) that can be switched without editing a file manually. Is that possible? How?
ad 2) Passwords are never ever allowed to be part of any software delivery. So it is never allowed to have a config file for an ORM that contains a password. Especially if you take "environment independence" into account: it can never contain a config file with multiple connection strings and multiple passwords. How can that be achieved?
ad 3) How does OpenAccess ORM support schema migrations, data migrations and migration rollbacks? Example: you have a table "stuff" which has a field "status" which has only 2 possible values: A=active, C=closed. In the past couple of months, the customer has filled that table with 100GB worth of data. Now you are supposed to deliver the next release in which you are supposed to replace the field "status" with "status-id" which refers to a new lookup-table "status" which has the fields "status-id" and "status-description". Let's say you have updated your domain model in OpenAccess ORM accordingly: how is the rollout and migration supported? At least one needs a script that
* adds the table "status" to the schema
* inserts the values that one needs to begin with (the lookup values for status)
* adds the field "status-id" to "stuff"
* performs a migration so that all existing entries in "stuff" actually use the new status-id field
* deletes the field "status" in "stuff".
and a script that rolls back this entire migration in case something fails and production needs to be rolled back to the previous release.
Does OpenAccess ORM create such scripts automatically or semi-automatically? How is that done?
Thanks
Matt