 ) COMMENT = "Measures for discussion topics/threads.";
 DROP TABLE IF EXISTS discussion_entry_dim;
 CREATE TABLE IF NOT EXISTS discussion_entry_dim (
-  `id` BIGINT PRIMARY KEY COMMENT 'Unique surrogate id for the discussion entry.',
+  `id` BIGINT COMMENT 'Unique surrogate id for the discussion entry.',
   `canvas_id` BIGINT COMMENT 'Primary key for this record in the Canvas discussion_entries table',
   `message` LONGTEXT COMMENT 'Full text of the entry\'s message',
   `workflow_state` VARCHAR(256) COMMENT 'Workflow state for discussion message (values: deleted, active)',
   `created_at` DATETIME COMMENT 'Timestamp when the discussion entry was created.',
   `updated_at` DATETIME COMMENT 'Timestamp when the discussion entry was updated.',
   `deleted_at` DATETIME COMMENT 'Timestamp when the discussion entry was deleted.',
-  `depth` INTEGER UNSIGNED COMMENT 'Reply depth for this entry'
+  `depth` INTEGER UNSIGNED COMMENT 'Reply depth for this entry',
+PRIMARY KEY (id)
 ) COMMENT = "Attributes for discussion entries. Discussion entries are replies in a discussion topic.";
 DROP TABLE IF EXISTS discussion_entry_fact;
 CREATE TABLE IF NOT EXISTS discussion_entry_fact (

) COMMENT = "Facts describing a single item in the navigation UI";
DROP TABLE IF EXISTS quiz_dim;
CREATE TABLE IF NOT EXISTS quiz_dim (
  `id` BIGINT PRIMARY KEY COMMENT 'Unique surrogate ID for the quiz.',
  `canvas_id` BIGINT COMMENT 'Primary key for this quiz in the quizzes table.',
  `root_account_id` BIGINT COMMENT 'Root account ID associated with this quiz.',
  `name` VARCHAR(256) COMMENT 'Name of the quiz. Equivalent Canvas API field -> \'title\'.',

  `workflow_state` VARCHAR(256) COMMENT 'Life-cycle state for section. (active, deleted)',
  `restrict_enrollments_to_section_dates` BOOLEAN COMMENT 'True when \"Users can only participate in the course between these dates\" is checked',
  `nonxlist_course_id` BIGINT COMMENT 'The course id for the original course if this course has been cross listed',
  `sis_source_id` VARCHAR(256) COMMENT 'Id for the correlated record for the section in the SIS (assuming SIS integration has been properly configured)',
PRIMARY KEY (id)
) COMMENT = "Attributes for a section of a course";
DROP TABLE IF EXISTS role_dim;
CREATE TABLE IF NOT EXISTS role_dim (
  `id` BIGINT COMMENT 'Unique surrogate id for the role.',
  `canvas_id` BIGINT COMMENT 'Primary key for this record in the Canvas roles table',
  `root_account_id` BIGINT,
  `account_id` BIGINT COMMENT 'The foreign key to the account that is in the role',
