github.com/openfga/openfga@v1.5.4-rc1/assets/migrations/mysql/001_initialize_schema.sql (about)

     1  -- +goose Up
     2  CREATE TABLE tuple (
     3      store CHAR(26) NOT NULL,
     4      object_type VARCHAR(128) NOT NULL,
     5      object_id VARCHAR(128) NOT NULL,
     6      relation VARCHAR(50) NOT NULL,
     7      _user VARCHAR(256) NOT NULL,
     8      user_type VARCHAR(7) NOT NULL,
     9      ulid CHAR(26) NOT NULL,
    10      inserted_at TIMESTAMP NOT NULL,
    11      PRIMARY KEY (store, object_type, object_id, relation, _user)
    12  );
    13  
    14  CREATE UNIQUE INDEX idx_tuple_ulid ON tuple (ulid);
    15  
    16  CREATE TABLE authorization_model (
    17      store CHAR(26) NOT NULL,
    18      authorization_model_id CHAR(26) NOT NULL,
    19      type VARCHAR(256) NOT NULL,
    20      type_definition BLOB,
    21      PRIMARY KEY (store, authorization_model_id, type)
    22  );
    23  
    24  CREATE TABLE store (
    25      id CHAR(26) PRIMARY KEY,
    26      name VARCHAR(64) NOT NULL,
    27      created_at TIMESTAMP NOT NULL,
    28      updated_at TIMESTAMP,
    29      deleted_at TIMESTAMP
    30  );
    31  
    32  CREATE TABLE assertion (
    33      store CHAR(26) NOT NULL,
    34      authorization_model_id CHAR(26) NOT NULL,
    35      assertions BLOB,
    36      PRIMARY KEY (store, authorization_model_id)
    37  );
    38  
    39  CREATE TABLE changelog (
    40      store CHAR(26) NOT NULL,
    41      object_type VARCHAR(256) NOT NULL,
    42      object_id VARCHAR(256) NOT NULL,
    43      relation VARCHAR(50) NOT NULL,
    44      _user VARCHAR(512) NOT NULL,
    45      operation INTEGER NOT NULL,
    46      ulid CHAR(26) NOT NULL,
    47      inserted_at TIMESTAMP NOT NULL,
    48      PRIMARY KEY (store, ulid, object_type)
    49  );
    50  
    51  -- +goose Down
    52  DROP TABLE tuple;
    53  DROP TABLE authorization_model;
    54  DROP TABLE store;
    55  DROP TABLE assertion;
    56  DROP TABLE changelog;