1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3   Tests databases schema
4  -->
5
6
7<schema>
8  <!-- provider specific information
9       use <replace> to replace something with something else (context can only be "/FIELDS_A/@COLUMN_TYPE" at the moment)
10       use <ignore> to ignore some parts (context can only be "/FKEY_S" or "/FIELDS_A/@COLUMN_PKEY" at the moment)
11       use <symbol> to define a symbolic value
12    -->
13  <specifics>
14    <provider name="PostgreSQL">
15      <replace context="/FIELDS_A/@COLUMN_TYPE" expr="string" replace_with="varchar"/>
16      <replace context="/FIELDS_A/@COLUMN_TYPE" expr="gint" replace_with="int"/>
17      <symbol name="now">now()</symbol>
18    </provider>
19
20    <provider name="MySQL">
21      <replace context="/FIELDS_A/@COLUMN_TYPE" expr="string" replace_with="text"/>
22      <replace context="/FIELDS_A/@COLUMN_TYPE" expr="gint" replace_with="int"/>
23      <ignore context="/FKEY_S"/>
24      <ignore context="/FIELDS_A/@COLUMN_PKEY"/>
25      <symbol name="now">CURRENT_TIMESTAMP</symbol>
26    </provider>
27
28    <provider name="SQLite">
29      <replace context="/FIELDS_A/@COLUMN_TYPE" expr="gint" replace_with="integer"/>
30      <symbol name="now">CURRENT_TIMESTAMP</symbol>
31    </provider>
32  </specifics>
33
34  <!-- customers table -->
35  <table name="customers">
36    <column name="id" type="gint" pkey="TRUE" autoinc="TRUE"/>
37    <column name="name"/>
38    <column name="last_update" type="timestamp"/>
39    <column name="default_served_by" type="gint" nullok="TRUE"/>
40    <column name="country" nullok="TRUE"/>
41    <column name="city" nullok="TRUE"/>
42    <fkey ref_table="locations">
43      <part column="country"/>
44      <part column="city"/>
45    </fkey>
46  </table>
47
48  <table name="locations">
49    <column name="country" pkey="TRUE"/>
50    <column name="city" pkey="TRUE"/>
51    <column name="shortcut"/>
52  </table>
53</schema>
54