Passwords may use only the supported special characters.
Supported
~ # $ % * ( ) - _ + [ ] { } . ?
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 "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" or " folder sqlplus" folders (packageMethod=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", and "Execute with psql" change sets. This is where above-mentioned unsupported characters become problematic and deployments fail. The error message when using unsupported 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'