1

同じユーザー名とパスワードを持つ 2 つのデータベースがあり、最初のデータベース (skryb) を 2 番目のデータベース (skryb1) にアップグレードするための SQL 命令を生成したいと考えています。

call liquibase --driver=com.mysql.jdbc.Driver ^
      --classpath=../lib/mysql-connector-java-5.1.20-bin.jar ^
      --url="jdbc:mysql://localhost:3306/skryb" ^
      --username=skryb ^
      --password=skryb ^
      --referenceUrl="jdbc:mysql://localhost:3306/skryb1" ^
      --referenceUsername=skryb ^
      --referencePassword=skryb ^
      --changeLogFile=1.xml ^
      diffChangeLog 


call liquibase --driver=com.mysql.jdbc.Driver ^
      --classpath=../lib/mysql-connector-java-5.1.20-bin.jar ^
      --url="jdbc:mysql://localhost:3306/skryb" ^
      --username=skryb ^
      --password=skryb ^
      --changeLogFile=1.xml ^
      updateSQL > 1.sql 

1.xml 内には、生成された xml タグがあります。

<changeSet author="steve (generated)" id="1357484117018-4">
    <addForeignKeyConstraint baseColumnNames="messageDetails_id" baseTableName="messageline" baseTableSchemaName="skryb1" constraintName="FK2F5B707BF7C835B8" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="messagedetails" referencedTableSchemaName="skryb1" referencesUniqueColumn="false"/>
</changeSet>

ここで baseTableSchemaName と referencedTableSchemaName が同じなのはなぜですか? 生成された SQL も間違っています。

ALTER TABLE `skryb1`.`messageline` ADD CONSTRAINT `FK2F5B707BF7C835B8` FOREIGN KEY (`messageDetails_id`) REFERENCES `skryb1`.`messagedetails` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION;

(skryb1 を更新したくない、skryb を更新したい。残りの sql 命令は skryb1 を参照しません。)

4

0 に答える 0