<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<project name="hellojpa-db" default="initialize-db">
    <property name="example" value="reversemapping"/>
    <import file="../build.xml"/>


    <target name="initialize-db" unless="initialize-db-skip"
        description="Drop then re-create the database">
        <!-- first make sure the database is empty -->
        <sql src="schema/dropdb.sql"
            driver="${dbdriver}" url="${dburl}"
            userid="${dbuser}" password="${dbpass}"
            onerror="continue" classpathref="classpath"/>

        <!-- build the database -->
        <sql
            driver="${dbdriver}" url="${dburl}"
            userid="${dbuser}" password="${dbpass}" classpathref="classpath">
            <transaction src="schema/ToursDB_schema.sql"/>
            <transaction src="schema/loadCOUNTRIES.sql"/>
            <transaction src="schema/loadCITIES.sql"/>
            <transaction src="schema/loadAIRLINES.sql"/>
            <transaction src="schema/loadFLIGHTS1.sql"/>
            <transaction src="schema/loadFLIGHTS2.sql"/>
            <transaction src="schema/loadFLIGHTAVAILABILITY1.sql"/>
            <transaction src="schema/loadFLIGHTAVAILABILITY2.sql"/>
        </sql>
    </target>

</project>
