2
Liquibase Java APIを使用して、databaseChangeLogファイルからデータベースを更新しています。私はまた、以下のコードを使用して、デフォルトのデータベーススキーマを設定しています:Liquibase Java APIのプレースホルダへのアクセス
Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(conn));
database.setDefaultSchemaName(CustomerPortalServiceBeanFactory.getInstance().getServiceConfigurationData().getSchemaName());
これは私が下図のようにビューを作成し、変更ログを持っている場合を除き、正常に動作します:
<?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>
SCHEMANAMEが適切に接頭辞れますビュー名ですが、from節で使用されているテーブルの前に接頭辞を付ける必要があります。スキーマ名はプレースホルダとして使用できますか、これを行う別の方法がありますか?