Want to find the answer quick?


Create schema from code

The Xata CLI allows you to create a database schema programatically by using xata init with the --schema parameter and a properly formatted JSON file. For example. Given the JSON file below, we could create Posts, Users and Teams tables into a new database.

1
xata init --schema /path/to/json_file.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
  "tables": [
    {
      "name": "Posts",
      "columns": [
        {
          "name": "title",
          "type": "string"
        },
        {
          "name": "labels",
          "type": "multiple"
        },
        {
          "name": "slug",
          "type": "string"
        },
        {
          "name": "text",
          "type": "text"
        },
        {
          "name": "author",
          "type": "link",
          "link": {
            "table": "Users"
          }
        },
        {
          "name": "createdAt",
          "type": "datetime"
        },
        {
          "name": "views",
          "type": "int"
        }
      ]
    },
    {
      "name": "Users",
      "columns": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "email",
          "type": "email"
        },
        {
          "name": "bio",
          "type": "text"
        },
        {
          "name": "address",
          "type": "object",
          "columns": [
            {
              "name": "street",
              "type": "string"
            },
            {
              "name": "city",
              "type": "string"
            },
            {
              "name": "zipcode",
              "type": "int"
            }
          ]
        },
        {
          "name": "team",
          "type": "link",
          "link": {
            "table": "Teams"
          }
        }
      ]
    },
    {
      "name": "Teams",
      "columns": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "createdAt",
          "type": "datetime"
        },
        {
          "name": "owner",
          "type": "link",
          "link": {
            "table": "Users"
          }
        }
      ]
    }
  ]
}