up.sql 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- Your SQL goes here
  2. CREATE TYPE TStatus AS ENUM ('disable','private','public');
  3. CREATE TYPE TContentType AS ENUM ('text','markdown','html');
  4. CREATE TABLE courses
  5. (
  6. id SERIAL PRIMARY KEY,
  7. uid VARCHAR(36) NOT NULL,
  8. parent_id INTEGER ,
  9. pr_parent_id INTEGER ,
  10. cover VARCHAR(255),
  11. title VARCHAR(255) NOT NULL,
  12. subtitle VARCHAR(255),
  13. summary VARCHAR(1024),
  14. teacher_id INTEGER,
  15. lang VARCHAR (16) NOT NULL DEFAULT('en'),
  16. speech_lang VARCHAR (16) NOT NULL DEFAULT('en'),
  17. lesson_num INTEGER NOT NULL DEFAULT(0),
  18. start_at TIMESTAMP ,
  19. end_at TIMESTAMP ,
  20. content TEXT ,
  21. content_type TContentType NOT NULL DEFAULT('markdown'),
  22. status TStatus NOT NULL DEFAULT('private'),
  23. editor_id INTEGER NOT NULL,
  24. studio_id INTEGER NOT NULL,
  25. owner_id INTEGER NOT NULL,
  26. version INTEGER NOT NULL DEFAULT (1),
  27. deleted_at TIMESTAMP ,
  28. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  29. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  30. );
  31. CREATE INDEX courses_title ON courses (title);
  32. CREATE INDEX courses_lang ON courses (lang);
  33. CREATE INDEX courses_status ON courses (status);
  34. CREATE INDEX courses_lang_status ON courses (lang,status);
  35. CREATE UNIQUE INDEX courses_uid ON courses (uid);