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;