Passwords may use only the supported special characters.
Supported
~ # $ % * ( ) - _ + [ ] { } . ?
Info |
---|
Oracle Only: All special characters are allowed in password if the password is contained within double quotes. This allows Oracle users to use a vault tool to auto-generate passwords that have any character included. |
Unsupported
@ & / : < > " ' ` | ^ ! = , \ <spaces>
Explanation:
Datical deploys some changes using database-specific tools such as "sqlplus" for Oracle, "edbplus" for Enterprise DB, "psql" for PostgreSQL, "sqlcmd" for SQL Server, and "clpplus" for DB2. Datical deploys other change types using a JDBC connection.
- When Datical deploys changes packaged in the "ddl" folder (packageMethod=convert) or in the "sql" folder (packageMethod=sqlfile), it uses a JDBC connection to deploy these changes. If using the Change Set Wizard instead of packager, a JDBC connection is used for "Execute a SQL script file using JDBC"/"Custom SQL (External File)" change sets. If the password contains any of the unsupported characters with these specific change types, it would still get deployed.
- However, when Datical deploys any other changes packaged in the "data_dml" folder (packageMethod=data_dml), the "sql_direct" folder (packageMethod=direct), or the "ddl_direct" folder (packageMethod=ddl_direct), or stored logic folders (packageMethod=storedlogic), it uses sqlplus/sqlcmd/clpplus/edbplus/pgsql to deploy those scripts. If using the Change Set Wizard instead of packager, it is the same for "Execute with SQLPlus", "Execute with SQLCMD", "Execute with CLPPlus", "Execute with edbplus", and "Execute with psql" change sets. This is where above-mentioned unsupported password characters become problematic and deployments fail. The error message when using unsupported password characters with these types of changes typically appears as follows:
Code Block Reason: liquibase.exception.UnexpectedLiquibaseException: Error executing command: /proj/app/datical/instantclient/sqlplus -L DATICAL_USER/*****@demo-db1-rhel6.datical.net:1521/TEST1.datical.net @/tmp/liquibase-sqlplus-1912448981370423195.sql returned an code of 1'