Files
traccar/database/changelog-3.3.xml
2016-03-03 10:52:10 +13:00

188 lines
7.1 KiB
XML

<?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.4.xsd">
<changeSet author="author" id="changelog-3.3">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="server" />
</not>
</preConditions>
<createTable tableName="users">
<column name="id" type="INT" autoIncrement="true">
<constraints primaryKey="true" />
</column>
<column name="name" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="email" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="hashedPassword" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="salt" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="readonly" type="BOOLEAN" defaultValueBoolean="false">
<constraints nullable="false" />
</column>
<column name="admin" type="BOOLEAN" defaultValueBoolean="false">
<constraints nullable="false" />
</column>
<column name="map" type="VARCHAR(128)" defaultValue="osm">
<constraints nullable="false" />
</column>
<column name="language" type="VARCHAR(128)" defaultValue="en">
<constraints nullable="false" />
</column>
<column name="distanceUnit" type="VARCHAR(128)" defaultValue="km">
<constraints nullable="false" />
</column>
<column name="speedUnit" type="VARCHAR(128)" defaultValue="kmh">
<constraints nullable="false" />
</column>
<column name="latitude" type="DOUBLE" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
<column name="longitude" type="DOUBLE" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
<column name="zoom" type="INT" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
</createTable>
<addUniqueConstraint tableName="users" columnNames="email" constraintName="uk_user_email" />
<createTable tableName="devices">
<column name="id" type="INT" autoIncrement="true">
<constraints primaryKey="true" />
</column>
<column name="name" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="uniqueId" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="status" type="VARCHAR(128)" />
<column name="lastUpdate" type="TIMESTAMP" />
<column name="positionId" type="INT" />
</createTable>
<addUniqueConstraint tableName="devices" columnNames="uniqueId" constraintName="uk_device_uniqueId" />
<createTable tableName="user_device">
<column name="userId" type="INT">
<constraints nullable="false" />
</column>
<column name="deviceId" type="INT">
<constraints nullable="false" />
</column>
</createTable>
<addForeignKeyConstraint baseTableName="user_device" baseColumnNames="userId" constraintName="fk_user_device_userId" referencedTableName="users" referencedColumnNames="id" onDelete="CASCADE" />
<addForeignKeyConstraint baseTableName="user_device" baseColumnNames="deviceId" constraintName="fk_user_device_deviceId" referencedTableName="devices" referencedColumnNames="id" onDelete="CASCADE" />
<createIndex tableName="user_device" indexName="user_device_user_id">
<column name="userId" />
</createIndex>
<createTable tableName="positions">
<column name="id" type="INT" autoIncrement="true">
<constraints primaryKey="true" />
</column>
<column name="protocol" type="VARCHAR(128)" />
<column name="deviceId" type="int">
<constraints nullable="false" />
</column>
<column name="serverTime" type="TIMESTAMP">
<constraints nullable="false" />
</column>
<column name="deviceTime" type="TIMESTAMP">
<constraints nullable="false" />
</column>
<column name="fixTime" type="TIMESTAMP">
<constraints nullable="false" />
</column>
<column name="valid" type="BOOLEAN">
<constraints nullable="false" />
</column>
<column name="latitude" type="DOUBLE">
<constraints nullable="false" />
</column>
<column name="longitude" type="DOUBLE">
<constraints nullable="false" />
</column>
<column name="altitude" type="FLOAT">
<constraints nullable="false" />
</column>
<column name="speed" type="FLOAT">
<constraints nullable="false" />
</column>
<column name="course" type="FLOAT">
<constraints nullable="false" />
</column>
<column name="address" type="VARCHAR(512)" />
<column name="attributes" type="VARCHAR(4096)">
<constraints nullable="false" />
</column>
</createTable>
<addForeignKeyConstraint baseTableName="positions" baseColumnNames="deviceId" constraintName="fk_position_deviceId" referencedTableName="devices" referencedColumnNames="id" onDelete="CASCADE" />
<createIndex tableName="positions" indexName="position_deviceId_fixTime">
<column name="deviceId" />
<column name="fixTime" />
</createIndex>
<createTable tableName="server">
<column name="id" type="INT" autoIncrement="true">
<constraints primaryKey="true" />
</column>
<column name="registration" type="BOOLEAN" defaultValueBoolean="true">
<constraints nullable="false" />
</column>
<column name="latitude" type="DOUBLE" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
<column name="longitude" type="DOUBLE" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
<column name="zoom" type="INT" defaultValueNumeric="0">
<constraints nullable="false" />
</column>
<column name="map" type="VARCHAR(128)" />
<column name="language" type="VARCHAR(128)" />
<column name="distanceUnit" type="VARCHAR(128)" />
<column name="speedUnit" type="VARCHAR(128)" />
<column name="bingKey" type="VARCHAR(128)" />
<column name="mapUrl" type="VARCHAR(128)" />
<column name="readonly" type="BOOLEAN" defaultValueBoolean="false">
<constraints nullable="false" />
</column>
</createTable>
<insert tableName="server">
<column name="registration" valueBoolean="true" />
<column name="latitude" valueNumeric="0" />
<column name="longitude" valueNumeric="0" />
<column name="zoom" valueNumeric="0" />
</insert>
<insert tableName="users">
<column name="name" value="admin" />
<column name="email" value="admin" />
<column name="hashedPassword" value="D33DCA55ABD4CC5BC76F2BC0B4E603FE2C6F61F4C1EF2D47" />
<column name="salt" value="000000000000000000000000000000000000000000000000" />
<column name="admin" valueBoolean="true" />
</insert>
</changeSet>
</databaseChangeLog>