...
1create_table("identities") {
2 t.Column("id", "uuid", {primary: true})
3 t.Column("traits_schema_id", "string", {"size": 2048})
4 t.Column("traits", "json")
5}
6
7create_table("identity_credential_types") {
8 t.Column("id", "uuid", {primary: true})
9 t.Column("name", "string", { "size": 32 })
10
11 t.DisableTimestamps()
12}
13
14add_index("identity_credential_types", "name", {"unique": true})
15
16create_table("identity_credentials") {
17 t.Column("id", "uuid", {primary: true})
18 t.Column("config", "json")
19
20 t.Column("identity_credential_type_id", "uuid")
21 t.Column("identity_id", "uuid")
22
23 t.ForeignKey("identity_id", {"identities": ["id"]}, {"on_delete": "cascade"})
24 t.ForeignKey("identity_credential_type_id", {"identity_credential_types": ["id"]}, {"on_delete": "cascade"})
25}
26
27create_table("identity_credential_identifiers") {
28 t.Column("id", "uuid", {primary: true})
29 t.Column("identifier", "string", {"size": 255})
30 t.Column("identity_credential_id", "uuid")
31 t.ForeignKey("identity_credential_id", {"identity_credentials": ["id"]}, {"on_delete": "cascade"})
32}
33
34add_index("identity_credential_identifiers", "identifier", {"unique": true})
View as plain text