When performing an upgrade of VMware Cloud Director (VCD) from version 10.3.x to 10.4.x (e.g., 10.4.3), the upgrade process fails. The failure occurs when running the database schema upgrade script (/opt/vmware/vcloud-director/bin/upgrade).
The following error is seen in the console or in the /opt/vmware/vcloud-director/logs/upgrade.log file: "jdbcUrl is not recognized"
10.3
This error occurs because the database configuration parameters in /opt/vmware/vcloud-director/etc/global.properties have changed in VCD version 10.4.
VCD 10.3.x used a single string: database.jdbcUrl
VCD 10.4.x deprecates database.jdbcUrl and replaces it with discrete properties (e.g., database.host, database.port, database.name, database.sslmode).
The 10.4.x /opt/vmware/vcloud-director/bin/upgrade script cannot parse the old database.jdbcUrl key, causing the upgrade to fail.
Do not manually edit the global.properties file. The correct procedure is to use the cell-management-tool to regenerate the database configuration in the new format.
This must be done after upgrading the cell binaries (e.g., vamicli update --install latest) but before running the database schema upgrade (/opt/vmware/vcloud-director/bin/upgrade).
Procedure:
Ensure you have completed the binary upgrade on all cells using vamicli update --install latest.
Ensure VCD services are stopped on all cells:
/opt/vmware/vcloud-director/bin/cell-management-tool -u <admin_username> cell --shutdown
On one VCD cell, SSH in as root.
Run the cell-management-tool to reconfigure the database. This command will interactively prompt for your database details and rewrite the global.properties file in the correct 10.4.x format.
/opt/vmware/vcloud-director/bin/cell-management-tool reconfigure-database
Follow the interactive prompts, providing your existing database connection details (Type, Host, Port, Database name, Username, and Password).
Once the command completes successfully, you can proceed with the database schema upgrade on the same cell:
/opt/vmware/vcloud-director/bin/upgrade
After the upgrade script completes, reboot all VCD appliances to finalize the upgrade.
The reconfigure-database command automatically converts the old database.jdbcUrl format into the new discrete key-value pairs required by VCD 10.4.x, allowing the upgrade script to proceed.