Quick notes on making database schema changes.
- Check out Revive Adserver from GitHub
- Install Revive Adserver from the checkout
- Ensure that the following directories and all files within can be written to by the web server:
- revive-adserver/etc/
- revive-adserver/lib/max/Dal/DataObjects/
- Use a browser to go to Revive Adserver's /www/devel directory
- Click on Schemas > Schema Editor
- Ensure that the "tables_core.xml" schema is being used
- Copy the current final schema to transitional
- Edit the schema
- Review the changes & make final; ensure a proper comment for the reason for the schema change is used
- Check all generated files are present and correct:
- revive-adserver/etc/tables_core.xml changed as expected
- New revive-adserver/etc/changes/changes_tables_core_XXX.xml created and contains constructive/destructive changes as expected
- New revive-adserver/etc/changes/schema_tables_core_XXX.xml created and identical to revive-adserver/etc/tables_core.xml
- New revive-adserver/etc/changes/migration_tables_core_XXX.php created
- New revive_adserver/etc/changes/schema_tables_core_XXX.xml differs from previous version as expected, and matching changes seen in revive-adserver/etc/tables_core.xml
- Appropriate table file(s) created/updated/removed in revive-adserver/lib/max/Dal/DataObjects
- Appropriate table definition(s) created/updated/removed in revive-adserver/lib/max/Dal/DataObjects/db_schema.ini
- Manually update the revive-adserver/etc/changes/migration_tables_core_XXX.php file if required to manage data migrations required for the schema change(s)
- Create upgrade package:
- Manually create an upgrade file in revive-adserver/etc/changes/openads_upgrade_X.X.X-rcX.xml with an appropriate version number for the next release
- Edit the file to include the required details of the database schema change to be applied for the upgrade
- Use a browser to go to Revive Adserver's /www/devel directory
- Click on Upgrade Packages Array > OpenX Core
- Check that the revive-adserver/etc/changes/openads_upgrade_array.txt has been updated to include the new upgrade package
- Perform an upgrade and check the database changes are applied
- Perform an install and check the database is created as expected
- Run the test suit (ignore test failures for tests relating to the binary caches for the various XML files for the schema)
- Commit