Ich verwende die Liquibase-Java-API, um meine Datenbank aus einer Datenbank-ChangeLog-Datei zu aktualisieren. Ich stelle auch das Standard-Datenbankschema den Code unter Verwendung von:Zugriff auf Platzhalter von Liquibase Java-API
Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(conn));
database.setDefaultSchemaName(CustomerPortalServiceBeanFactory.getInstance().getServiceConfigurationData().getSchemaName());
Dies funktioniert gut, außer wenn ich ein Änderungsprotokoll habe, das eine Ansicht erstellt, wie unten dargestellt:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet author="mhills" id="customerUser-view">
<createView
replaceIfExists="true"
viewName="CUSTOMER_USER_VW">
select
customeruser.id,
customeruser.status,
customeruser.customer_id,
customeruser.contact_id,
customeruser.email_address,
customeruser.online_name,
customeruser.date_created
FROM customer_user customeruser
</createView>
</changeSet>
</databaseChangeLog>
Die schemaname richtig prefixing der View-Name, aber ich muss auch die in der from-Klausel verwendete Tabelle voranstellen. Ist der Schemaname als Platzhalter verfügbar oder gibt es einen anderen Weg, dies zu erreichen?